Method and Apparatus for Presenting Media Works

ABSTRACT

One embodiment of the present invention is a method of presenting a media work that includes one or more media works at a client device, which method includes: receiving presentation rate guidance information from a remote source; determining whether the presentation rate guidance information indicates that it is mandatory to present a portion of the media work, and if so; presenting the portion.

This application is a continuation of a patent application entitled“Method and Apparatus for Controlling Time-Scale Modification DuringMulti-Media Broadcasts” having Ser. No. 12/753,028 which was filed onApr. 1, 2010, which patent application was a continuation of a patentapplication entitled “Method and Apparatus for Controlling Time-ScaleModification During Multi-Media Broadcasts” having Ser. No. 11/497,154which was filed on Jul. 31, 2006 and is now U.S. Pat. No. 7,703,117,which patent application was a continuation of a patent applicationentitled “Method and Apparatus for Controlling Time-Scale ModificationDuring Multi-Media Broadcasts” having Ser. No. 10/452,966 which wasfiled on Jun. 2, 2003 and is now U.S. Pat. No. 7,100,188, which patentapplication was a continuation of a patent application entitled “Methodand Apparatus for Controlling Time-Scale Modification During Multi-MediaBroadcasts” having Ser. No. 09/325,245 which was filed on Jun. 3, 1999and is now U.S. Pat. No. 6,598,228, which patent application was acontinuation-in-part of a patent application entitled “Method andApparatus for User-Time-Alignment for Broadcast Works” having Ser. No.09/320,374 which was filed on May 26, 1999, and is now U.S. Pat. No.6,934,759. This patent application is related to a patent applicationentitled “Method and Apparatus for Server Broadcast of Time-ConvergingMulti-Media Streams” having Ser. No. 09/320,008 which was filed on May26, 1999 and is now U.S. Pat. No. 6,370,688.

TECHNICAL FIELD OF THE INVENTION

One or more embodiments of the present invention pertain to multi-mediabroadcast and presentation of broadcast multi-media.

BACKGROUND OF THE INVENTION

Many digitally encoded audio and audio-visual works are stored as dataon servers (such as file servers or streaming media servers) that areaccessible via the Internet for users to download. FIG. 1 shows, inschematic form, how such audio or audio-visual works are distributedover the Internet. As shown in FIG. 1, media broadcast server 2000accesses data representing the audio or audio-visual work from storagemedium 2100 and broadcasts the data to multiple recipients 2300 ₁ to2300 _(n) across non-deterministic delay network 2200. In this systemthere are two main sources of random delay: (a) delay due to mediabroadcast server 2000 accessing storage medium 2100 and (b) delay due tothe congestion, interference, and other delay mechanisms within network2200.

One well known technique for providing playback of the audio oraudio-visual work is referred to as batch playback. Batch playbackentails downloading an entire work and initiating playback after theentire work has been received. Another well known technique forproviding playback of the audio or audio-visual work is referred to as“streaming.” Streaming entails downloading data which represents theaudio or audio-visual work and initiating playback before the entirework has been received.

There are several disadvantages inherent in both of these techniques. Aprime disadvantage of batch playback is that the viewer/listener mustwait for the entire work to be downloaded before any portion of the workmay be played. This can be tedious since the viewer/listener may wait along time for the transmission to occur, only to discover that the workis of little or no interest soon after playback is initiated. Thestreaming technique alleviates this disadvantage of batch playback byinitiating playback before the entire work has been received. However, adisadvantage of streaming is that playback is often interrupted when theflow of data is interrupted due to network traffic, congestion,transmission errors, and the like. These interruptions are tedious andannoying since they occur randomly and have a random duration. Inaddition, intermittent interruptions often cause the context of theplayback stream to be lost as the viewer/listener waits for playback tobe resumed when new data is received. A further disadvantage ofstreaming is that a user or client is required to poll for additionaldata according to its rate of use of the data. In this manner, a user orclient using data at a rapid rate has to make additional requests fordata at a higher rate than a user or client using the data at a slowerrate.

A further disadvantage in broadcasting audio or audio-visual works usingprior art methods occurs when clients request data asynchronously fromthe media server. Currently, there are two prior art methods forbroadcasting a work to multiple clients requesting data at arbitrarytimes. The first prior art method involves re-broadcasting the work atregular intervals. This prior art method is efficient for the mediaserver since its storage access patterns and load are basicallyindependent of the number of clients receiving the audio or audio-visualwork. A major problem with this prior art method is that clients mustjoin a re-broadcast in the middle of the audio or audio-visual workcurrently being broadcast, or wait for the next re-broadcast to begin toview the start of the audio or audio-visual work.

The second prior art method initiates a re-broadcast of the audio oraudio-visual work each time a client requests to view the audio oraudio-visual work. This prior art method has the advantage that clientdo not have to wait to view the start of work and begin receptionimmediately. A major problem with this second prior art method is thatthe media server must monitor, track and fulfill the request of eachclient requesting data individually. This causes a dramatic increase inserver load during heavy use since multiple requests arrivesimultaneously, and storage access patterns and broadcast load varywidely. As a result, the media server's capacity to serve a number ofclients in a reasonable time is limited.

SUMMARY OF THE INVENTION

One embodiment of the present invention is a method of presenting amedia work that includes one or more media works at a client device,which method includes: receiving presentation rate guidance informationfrom a remote source; determining whether the presentation rate guidanceinformation indicates that it is mandatory to present a portion of themedia work, and if so; presenting the portion.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 shows, in schematic form, how audio or audio-visual works arebroadcast from a server (for example, a file server or a streaming mediaserver) to recipients over a network such as, for example, the Internet;

FIG. 2 shows a block diagram of an embodiment of the present inventionwhich provides substantially continuous playback of an audio oraudio-visual work received from a source having non-deterministic delayssuch as a server (for example, a file server or a streaming mediaserver) broadcasting data via the Internet;

FIG. 3 shows, in pictorial form, low and high thresholds used in oneembodiment of Capture Buffer 400 for the embodiment of the presentinvention shown in FIG. 2;

FIG. 4. shows a graph of playback rate versus amount of data in CaptureBuffer 400 using eqns. (2)-(4) for the embodiment of the presentinvention shown in FIG. 2;

FIG. 5. shows, in graphical form, relative amounts of data at an inputand an output of TSM System 800 in the embodiment of the presentinvention shown in FIG. 2 during time-scale expansion, i.e., slow downof the playback rate of the streaming media;

FIG. 6. shows, in graphical form, relative amounts of data at an inputand an output of TSM System 800 compression in the embodiment of thepresent invention shown in FIG. 2 during time-scale compression, i.e.,speed up of the playback-rate of the streaming media;

FIG. 7 shows a block diagram of media server 3000 which re-broadcasts anaudio or audio-visual work is at regular intervals;

FIG. 8A shows, in graphical form, encoding, transmitting and decodingportions of an audio or audio-visual work;

FIG. 8B shows, in graphical form, a composition and transmission methodutilized by Work Stream 3200 to form and transmit a TDM composite signalto Multicaster 3300 of embodiment 3000 shown in FIG. 7 of embodiment3000;

FIG. 9A shows a graph of location of a segment (offset from an origin)of the audio or audio-visual work being re-broadcast by embodiment 3000shown in FIG. 7 as a function of time;

FIG. 9B shows a graph of work-encoded-data-block number (offset from anorigin) of the audio or audio-visual work being re-broadcast byembodiment 4000 shown in FIG. 10 as function of time;

FIG. 9C shows a graph of position (offset from an origin) of an audio oraudio-visual work being received by a media playback device thatincorporates storage of the audio or audio-visual work, such as, forexample a digital VCR, hard-disk based VCR, and the like;

FIG. 10 shows a block diagram of embodiment 4000 of the presentinvention that transitions asynchronously arriving requests to receive aparticular audio or audio-visual work to synchronous re-broadcasts ofthe audio or audio-visual work;

FIG. 11A shows a graph of location (offset from an origin) of an audioor audio-visual work being re-broadcast by embodiment 5000 shown in FIG.12 as a function of time in accordance with the further aspect of thepresent invention;

FIG. 11B shows, in graphical form, encoding portions of a Time-ScaleModified audio or audio-visual work to form Time-Scale Modified Leaders;

FIG. 12 shows a block diagram of embodiment 5000 of the presentinvention which: (a) transmits Time-Scale Modified Leaders; (b) joinsre-broadcast offset streams of an audio or audio-visual work; and (c)transmits offset streams of an audio or audio-visual work;

FIG. 13 shows a graph of location (offset from an origin) in normal andTime-Scale Modified versions of offset re-broadcasts of an audio oraudio-visual work versus time on the horizontal axis;

FIG. 14 shows a block diagram of embodiment 21000 of the presentinvention which transmits information relating to playback rate and/orcontent of media data in an “out-of-band” mode to clients receiving themedia data;

FIG. 15 shows a block diagram of embodiment 22000 of the presentinvention in which information relating to playback rate and/or contentof media data being broadcast is transmitted in an “in-band” mode toclients;

FIG. 16 shows an example of a Presentation Rate Guidance Informationsignal received by the TSM Control Decoder of FIG. 14 and how it is usedby embodiment 21000 of FIG. 14 to determine playback rates of at leastportions of a media work; and

FIG. 17 shows a Content Look-Up Table to illustrate how embodiment 21000uses content information to determine playback rates of at leastportions of the media work.

DETAILED DESCRIPTION

FIG. 2 shows a block diagram of embodiment 1000 of the present inventionwhich provides substantially continuous playback of an audio oraudio-visual work received from a source having non-deterministic delayssuch as a server (for example, a file server or a streaming mediaserver) broadcasting via the Internet. As shown in FIG. 2, streamingdata source 100 provides data representing an audio or audio-visual workthrough network 200 to User System 300 (US 300), which data is receivedat a non-deterministic rate by US 300. Capture Buffer 400 in US 300receives the data as input. In a preferred embodiment of the presentinvention, Capture Buffer 400 is a FIFO (First In First Out) bufferexisting, for example, in a general purpose memory store of US 300.

In the absence of delays in arrival of data at US 300 from network 200,the amount of data in Capture Buffer 400 ought to remain substantiallyconstant as a data transfer rate is typically chosen to be substantiallyequal to a playback rate. However, as is well known to those of ordinaryskill in the art, pauses and delays in transmission of the data throughnetwork 200 to Capture Buffer 400 cause data depletion therein. Datadepletion in Capture Buffer 400 occurs because, simultaneously, data isinput thereto from network 200 while data is output (for example, at aconstant rate) therefrom to satisfy data use requirements of PlaybackSystem 500. As should be clear to those of ordinary skill in the art, ifdata transmitted to US 300 is delayed long enough, data in CaptureBuffer 400 will be consumed, and Playback System 500 must pause until asufficient amount of data has arrived to enable resumption of playback.Thus, a typical playback system must constantly check for arrival of newdata while the playback system is paused, and it must initiate playbackonce a sufficient amount of new data is received.

In accordance with the present invention, data input to Capture Buffer400 of US 300 is buffered for a predetermined amount of time, whichpredetermined amount of time typically varies, for example, from one (1)second to several seconds. Then, Time-Scale Modification (TSM) methodsare used to slow the playback rate of the audio or audio-visual work tosubstantially match a data drain rate required by Playback System 500with a streaming data rate of the arriving data representing the audioor audio-visual work. As is well known to those of ordinary skill in theart, presently known methods for Time-Scale Modification (“TSM”) enabledigitally recorded audio to be modified so that a perceived articulationrate of spoken passages, i.e., a speaking rate, can be modifieddynamically during playback. During Time-Scale expansion, TSM System 800requires less input data to generate a fixed interval of output data.Thus, in accordance with the present invention, if a delay occurs duringtransmission of the audio or audio-visual work from network 200 to US300 (of course, it should be clear that such delays may result from anynumber of causes such as delays in accessing data from a storage device,delays in transmission of the data from a media server, delays intransmission through network 200, and so forth), the playback rate isautomatically slowed to reduce the amount of data drained from CaptureBuffer 400 per unit time. As a result, and in accordance with thepresent invention, more time is provided for data to arrive at US 300before the data in Capture Buffer 400 is exhausted. Advantageously, thisdelays the onset of data depletion in Capture Buffer 400 which wouldcause Playback System 500 to pause.

As shown in FIG. 2, Capture Buffer 400 receives the following as input:(a) media data input from network 200; (b) requests for informationabout the amount of data stored therein from Capture Buffer Monitor 600;and (c) media stream data requests from TSM System 800. In response,Capture Buffer 400 produces the following as output: (a) a stream ofdata representing portions of an audio or audio-visual work (output toTSM System 800); (b) a stream of location information used to identifythe position in the stream of data (output to TSM System 800); and (c)the amount of data stored therein (output to Capture Buffer Monitor600). It should be well known to those of ordinary skill in the art thatCapture Buffer 400 may include a digital storage device. There are manymethods well known to those of ordinary skill in the art for utilizingdigital storage devices, for example a “hard disk drive,” to store andretrieve general purpose data. There exist many commercially availableapparatus which are well known to those of ordinary skill in the art foruse as a digital storage device such as, for example, a CD-ROM, adigital tape, a magnetic disc.

As further shown in FIG. 2, and in accordance with the presentinvention, TSM Rate Determiner 700 receives the following as input: (a)a signal (from Capture Buffer Monitor 600) that represents the amount ofdata present in Capture Buffer 400; (b) a signal (output, for example,from Playback System 500 or from another module of US 300) thatrepresents a current data consumption rate of Playback System 500; (c) alow threshold value parameter (T_(L) which is described in detail below)for the amount of data in Capture Buffer 400; (d) a high threshold valueparameter (T_(H) which is described in detail below) for the amount ofdata in Capture Buffer 400; (e) a parameter designated Interval_Size;and (f) a parameter designated Speed_Change_Resolution. In response, TSMRate Determiner 700 produces as output a rate signal representing a TSMrate, or playback rate, which can help better balance the dataconsumption rate of Playback System 500 with an arrival rate of data atCapture Buffer 400.

In a preferred embodiment of the present invention, TSM Rate Determiner700 uses the parameter Interval_Size to segment the input digital datastream in Capture Buffer 400 and to determine a single TSM rate for eachsegment of the input digital stream. Note, the length of each segment isgiven by the value of the Interval_Size parameter.

TSM Rate Determiner 700 uses the parameter Speed_Change_Resolution todetermine appropriate TSM rates to pass to TSM System 800. A desired TSMrate is converted to one of the quantized levels in a manner which iswell known to those of ordinary skill in the art. This means that theTSM rate, or playback rate, can change only if the desired TSM ratechanges by an amount that exceeds the difference between quantizedlevels, i.e., Speed_Change_Resolution. As a practical matter then,parameter Speed_Change_Resolution filters small changes in TSM rate, orplayback rate. The parameters Interval_Size and Speed_Change_Resolutioncan be set as predetermined parameters for embodiment 1000 in accordancewith methods which are well known to those of ordinary skill in the artor they can be entered and/or varied by receiving user input through auser interface in accordance with methods which are well known to thoseof ordinary skill in the art. However, the manner in which theseparameters are set and/or varied are not shown for ease of understandingthe present invention.

As still further shown in FIG. 2, TSM System 800 receives as input: (a)a stream of data representing portions of the audio or audio-visual work(output from Capture Buffer 400); (b) a stream of location information(output from Capture Buffer 400) used to identify the position in thestream of data being sent, for example, a sample count or time value;and (c) the rate signal specifying the desired TSM rate, or playbackrate (output from TSM Rate Determiner 700).

In accordance with the present invention, TSM System 800 modifies theinput stream of data in accordance with well known TSM methods toproduce, as output, a stream of samples that represents a Time-ScaleModified signal. The Time-Scale modified output signal contains fewersamples per block of input data if Time-Scale Compression is applied, asshown in FIG. 6. Similarly, if Time-Scale Expansion is applied, theoutput from TSM System 800 contains more samples per block of inputdata, as shown in FIG. 5. Thus, TSM System 800 can create more samplesthan it is given by creating an output stream with a slower playbackrate (Time-Scale Expanded). Similarly, TSM System 800 can create fewersamples than it is given by creating an output stream with a fasterplayback rate (Time-Scale Compressed). In a preferred embodiment of thepresent invention, the TSM method used is a method disclosed in U.S.Pat. No. 5,175,769 (the '769 patent), which '769 patent is incorporatedby reference herein, the inventor of the present invention also being ajoint inventor of the '769 patent. Thus, the output from TSM System 800is a stream of samples representing portions of the audio oraudio-visual work, which output is applied as input to Playback System500. Playback System 500 plays back the data output from TSM System 800.There are many well known methods of implementing Playback System 500that are well known to those of ordinary skill in the art. For example,many methods are known to those of ordinary skill in the art forimplementing Playback system 500, for example, as a playback engine.

In accordance with the present invention, the stream of digital samplesoutput from TSM System 800 has a playback rate, supplied from TSM RateDeterminer 700, that provides a balance of the data consumption rate ofTSM System 800 with the arrival rate of data input to US 300. Note that,in accordance with this embodiment of the present invention, the dataconsumption rate of Playback System 500 is fixed to be identical to thedata output rate of TSM System 800. Thus, when a playback raterepresenting Time-Scale Expansion is output from TSM Rate Determiner 700and applied as input to TSM System 800, the number of data samplesrequired per unit time by TSM System 800 is reduced in proportion to theamount of Time-Scale Expansion. A reduction in the number of datasignals sent to TSM System 800 slows the data drain-rate from CaptureBuffer 400 and, as a result, less data from Capture Buffer 400 isconsumed per unit time. This, in turn, increases the amount of playbacktime before a pause is required due to emptying of Capture Buffer 400.

As one of ordinary skill in the art should readily appreciate, althoughthe present invention has been described in terms of slowing downplayback, the present invention is not thusly limited and includesembodiments where the playback rate is increased in situations wheredata arrives in Capture Buffer 400 at a rate which is faster than therate at which it would be consumed during playback at a normal rate. Inthis situation, the playback rate is increased and the data is consumedby TSM System 800 at a faster rate to avoid having Capture Buffer 400overflow.

As one of ordinary skill in the art can readily appreciate, wheneverembodiment 1000 provides playback rate adjustments for an audio-visualwork, TSM System 800 speeds up or slows down visual information to matchthe audio in the audio-visual work. To do this in a preferredembodiment, the video signal is “Frame-subsampled” or “Frame-replicated”in accordance with any one of the many methods known to those ofordinary skill in the prior art to maintain synchronism between theaudio and visual portions of the audio-visual work. Thus, if one speedsup the audio and samples are requested at a faster rate, the framestream is subsampled, i.e. frames are skipped.

Although FIG. 2 shows embodiment 1000 to be comprised of separatemodules, in a preferred embodiment, Playback System 500, Capture BufferMonitor 600, TSM Rate Determiner 700, and TSM System 800 are embodied assoftware programs or modules which run on a general purpose computersuch as, for example, a personal computer. It should be well known toone of ordinary skill in the art, in light of the detailed descriptionabove, how to implement these programs or modules in software.

As should be clear to those of ordinary skill in the art, embodiments ofthe present invention include the use of any one of a number ofalgorithms for determining the playback rate to help balance the rate ofdata consumption for playing back the audio or audio-visual works withthe rate of data input from network 200 having non-deterministic delays.In one embodiment of the present invention, the playback rate isdetermined to vary with the fraction of Capture Buffer 400 that isfilled with data. For example, for each 10% decrement of data depletion,the playback rate is reduced by 10%, except when the input data containsan “end” signal. It should be clear to those of ordinary skill in theart how to modify this algorithm to achieve any of a number of desiredbalance conditions. For example, in situations where a delay durationcan vary drastically, a non-linear relationship may be used to determinethe playback rate. One non-linear function that may be used is theinverse tangent function. In this case,

Playback Rate=tan h⁻¹((2*#samples_in_buffer/elements_in_buffer))−1)  (1)

where #samples_in_buffer is the number of samples of data in CaptureBuffer 400 and elements_in_buffer is the total number of samples of datathat can be stored in Capture Buffer 400.

In a preferred embodiment of the present invention, a low threshold(T_(L)) value and a high threshold (T_(H)) value are be used toconstruct a piece-wise graph of playback rate versus amount of data inCapture Buffer 400. FIG. 3 shows, in pictorial form, how T_(L) and T_(H)relate to the amount of data in Capture Buffer 400. These thresholds areused in accordance with the following set of equations:

For 0<=X<=T _(L) Playback Rate=Scale*tan h ⁻¹((X−T _(L))/T _(L))  (2)

For T_(L) ≦X≦T _(H) Playback Rate=1.0 (the default playback rate)  (3)

For T_(H) <=X<=Max Playback Rate=Scale*tan h ⁻¹ ((X−T _(H))/(Max−T_(H)))  (4)

where Scale is arbitrary scale factor.

FIG. 4. shows a graph of playback rate versus amount of data in CaptureBuffer 400 using eqns. (2)-(4). From FIG. 4, one can readily appreciatethat for small deviations from an ideal amount of data in Capture Buffer400 (origin 0 in FIG. 4), changes in the playback rate are linear;however, larger deviations generate a more pronounced non-linearresponse. Further, changes in the amount of data in Capture Buffer 400which remain between low threshold level T_(L) and high threshold levelT_(H) do not cause any change in playback rate. The parameters T_(L) andT_(H) can be set as predetermined parameters for embodiment 1000 inaccordance with methods which are well known to those of ordinary skillin the art or they can be entered and/or varied by receiving user inputthrough a user interface in accordance with methods which are well knownto those of ordinary skill in the art. However, the manner in whichthese parameters are set and/or varied are not shown for ease ofunderstanding the present invention.

As should be clear to those of ordinary skill in the art, the inventivetechnique for providing substantially continuous playback may becombined with any number of apparatus which provide time-scalemodification and may be combined with or share components with suchsystems.

It should be clear to those of ordinary skill in the art, in light ofthe detailed description set forth above, that in essence, embodimentsof the present invention (a) determine a measure of a mismatch between adata arrival rate and a data consumption rate and (b) utilize time-scalemodification to adjust these rates. Various embodiments of the inventionutilize various methods (a) for determining information which indicatesthe measure of the mismatch and (b) for determining a playback ratewhich enables time-scale modification to adjust for the mismatch in apredetermined amount.

In light of this, in another embodiment of the present invention, theplayback system determines that there is a data mismatch because itdetermines a diminution in the arrival of data for playback orsubsequent distribution. In response, the playback system sends thisinformation to the TSM Rate Determiner to develop an acceptable playbackrate. For example, the playback rate may be reduced by a predeterminedamount based on an input parameter or in accordance with any one of anumber of algorithms that may be developed by those of ordinary skill inthe art.

Embodiments of the present invention are advantageous in enabling asingle-broadcast system utilizing a broadcast server to provide a singlebroadcast across one or more non-deterministic delay networks tomultiple recipients, for example across the Internet and/or othernetworks such as Local Area Networks (LANs) and Wide Area Networks(WANs). In such a single-broadcast system, the path to each recipientvaries. In fact, the path to each recipient may dynamically change basedon loading, congestion and other factors. Therefore, the amount of delayassociated with the transmission of each data packet that has been sentby the broadcast server varies. In prior art client-server schemes, eachrecipient has to notify the broadcast server of its readiness to receivemore data, thereby forcing the broadcast server to serve multiplerequests to provide a steady stream of data at the recipients' dataports. Advantageously, embodiments of the present invention enable thebroadcast server to send out a steady stream of information, and therecipients of the intermittently arriving data to adjust the playbackrate of the data to accommodate the non-uniform arrival rates. Inaddition, in accordance with the present invention, each of therecipients can accommodate the arrival rates independently.

Another aspect of the present invention advantageously involvessimplification of a transmission protocol used for communication ofstreaming media between a client and, for example, a server such as amedia or broadcast server. In accordance with this additional aspect ofthe present invention, an inventive transmission protocol comprises theclient's sending a data transmission rate to the media or broadcastserver. In response, the server transmits data to the serversubstantially at that rate. In one embodiment of the present invention,the data transmission rate is in the form of a playback rate for a work.In this case, the server adjusts its data transmission rate in a mannerwhich is well known to those of ordinary skill in the art so that theamount of data received by the client substantially matches the client'splayback rate for the work. Thus, for embodiments of this aspect of thepresent invention, the broadcast server need not change its distributionrate unless and until a new request is received from the client. As onecan readily appreciate, the inventive transmission protocol isadvantageous because its use reduces: (a) a network protocol bandwidthrequired for streaming by substantially reducing repeated requests fordata from the client and (b) the number of messages the server mustprocess.

Another aspect of the present invention pertains to media broadcastingwherein media or broadcast servers begin broadcasts of a particular work(for example, the day's news) at regular time intervals, for example,every 5 minutes. In accordance with an embodiment of the presentinvention, a client that sends a request to view or listen to theparticular work is sent a stream of the particular work (substantiallyimmediately) which is closest (in the temporal sense) to the beginningof a broadcast of the particular work (in a manner that will bedescribed in detail below) rather than waiting for a re-broadcast tobegin or joining an in-progress broadcast. After a transition period (tobe described in detail below), the client joins one of the regularbroadcasts and receives data therefrom. Advantageously, in accordancewith the present invention, there is a reduction in client wait time anda reduction in client load for the media or broadcast servers. Althoughembodiments of the present invention are described below in the contextof broadcasting data for ease of understanding the invention, it shouldbe understood that the present invention is not thereby limited. Infact, among other things, embodiments of the present invention can alsobe applied to accessing data as well.

FIG. 7 shows a block diagram of embodiment 3000 of a media server whichre-broadcasts an audio or audio-visual work at regular intervals. Asshown in FIG. 7, Storage Device 3100 is a storage device of a type whichis well known to those of ordinary skill in the art. Storage Device 3100stores a representation (preferably a digital representation, or anyrepresentation that can be converted to a digital representation inaccordance with methods which are well known to those of ordinary skillin the art) of an audio or audio-visual work or data of interest to auser (such as a stream of stock quotes, market data, advertisements, andso forth). Storage Device 3100 receives, as input, data requests fromWork Streamer 3200, and provides, as output, the data requested.

As further shown in FIG. 7, Work Streamer 3200 receives as input: (a) acode (for example, a number) which represents a desired Re-broadcastInterval (“RBI”) (from Re-broadcast Interval Determiner 3700); (b) acode (for example, a number) which represents a desired number ofTime-Division Multiplexed (TDM) channels (from Re-broadcast IntervalDeterminer 3700); (c) a code (for example, a number) which representsthe duration of the audio or audio-visual work being re-broadcast (fromRe-broadcast Interval Determiner 3700); and (d) data from Storage Device3100. Work Streamer 3200 produces, as output, a Time-DivisionMultiplexed composite signal (described in detail below), which outputis applied as input to Multicaster 3300. As will be described in detailbelow, in accordance with the preferred embodiment of the presentinvention, Work Streamer 3200 creates numerous re-broadcasts of theaudio or audio-visual work by sending appropriately interleaved segmentsof the work in the form of the Time-Division Multiplexed signal toMulticaster 3300. Advantageously, in accordance with the preferredembodiment of the present invention, data accesses to Storage Device3100 are organized by Work Streamer 3200 to reduce seek time, decreaselatency, and increase throughput by interleaving and caching accesses todata representing the audio or audio-visual work. It should be clear tothose of ordinary skill in the art that embodiments of this aspect ofthe present invention are not limited to generating the compositeTime-Division Multiplexed signal and include embodiments where the datafor the various re-broadcasts are each generated from a separate signal.

As still further shown in FIG. 7, Re-broadcast Interval Determiner(“RBID”) 3700 receives, as input, (a) a code (for example, a number)which represents the duration of an audio or audio/visual work and (b) acode (for example, a number) that represents the number of re-broadcastoffset channels (to be described in detail below). RBID 3700 produces,as output: (a) a code (for example, a number) which represents a desiredRe-broadcast Interval (“RBI”) (sent to Work Streamer 3200); (b) a code(for example, a number) which represents a desired number ofTime-Division Multiplexed (TDM) channels (sent to Work Streamer 3200);(c) a code (for example, a number) which represents the duration of theaudio or audio-visual work being re-broadcast (sent to Work Streamer3200). In accordance with the present invention, RBID 3700 computes theRBI by applying one of a number of formulas. In the preferred embodimentof the present invention, the following formula is used:

RBI=Duration of audio or audio-visual work/(No. of re-broadcast offsetchannels)  (5)

As yet still further shown in FIG. 7, Multicaster 3300 receives, asinput: (a) a data stream (the Time-Division Multiplexed compositesignal) from Work Streamer 3200 and (b) client information (for example,control and destination) from Request Processor 3500. Multicaster 3300produces, as output, data (for example, message packets) directed towardparticular clients for re-broadcast on a network such as the Internet,WAN, LAN, etc. In accordance with the present invention, Multicaster3300 manages a list of all clients that should receive data fromparticular portions of the TDM composite signal in accordance with anyone of a number of methods which are well known to those of ordinaryskill in the art. Then, whenever the particular portion of data in theTDM composite signal is received from Work Streamer 3200, Multicaster3300 sends the particular portion of data to all clients (recipients) inthe list who are to receive the particular portion of data (also knownas multicasting). Many methods for broadcasting a portion of data from adata stream (for example, a Time-Division Multiplexed composite signal)to multiple recipients are well known to those of ordinary skill in theart. Control information from Request Processor 4500 is used inaccordance with methods that are well known to those of ordinary skillin the art to modify the list of recipients, for example, to add arecipient, or to remove a recipient from the list of destinations whenthe recipient no longer desires to receive data from the server.

As yet again still further shown in FIG. 7, Request Processor 3500receives, as input, requests for data from clients connected via Network3990 (for example, an Internet, WAN, LAN, or the like). In response,Request Processor 3500 produces, as output, information identifying theclient and appropriate re-broadcast control information such as, forexample, “request data that is identified by an appropriate dataidentifier,” “disconnect,” and other messages that are used to obtaindata from embodiment 3000. It should be clear to those of ordinary skillin the art, that such information identifying the client and appropriatere-broadcast control information may be obtained: (a) by dialogs betweenthe client and Request Processor 3500 in accordance any one of manymethods that are well known to those of ordinary skill in the artincluding, without limitation, by use of forms that are contained on webpages that are transmitted to the client over Network 3990 in accordanceany one of the many methods that are well known to those of ordinaryskill in the art.

Although FIG. 7 shows embodiment 3000 to be comprised of separatemodules, in a preferred embodiment, the modules are embodied as softwareprograms or modules which run on a general purpose computer such as, forexample, a personal computer. It should be well known to one of ordinaryskill in the art, in light of the detailed description above, how toimplement these programs or modules in software.

Conversely, components of embodiment 4000 may exist in separatelocations connected to one another by a network or any othercommunication means (where the use of the term means is used in thebroadest sense possible).

In accordance with this embodiment of the present invention, an audio oraudio-visual work is encoded into data that is later decoded to recreatethe original audio or audio-visual work. Those of ordinary skill in theart should readily appreciate that the amount of data that represents aparticular portion of the audio or audio-visual work can be transmitted,re-broadcast, and/or accessed from Storage Device 3100 in a timeinterval that is significantly less than the playback time interval ofthe particular portion. FIG. 8A shows the playback time of segments(Seg0, Seg1, . . . , SegN) of an original audio or audio-visual work,plotted along time axis 3001. The segments are encoded as data inaccordance with methods that are well known to those of ordinary skillin the art, and the transmission times for the encoded data blocks (D0,D1, . . . , DN) which correspond to the segments (Seg0, Seg1, . . . ,SegN) are shown along time-axis 3002. The time of receipt of thetransmitted encoded data blocks (D0, D1, . . . , DN) are plotted alongtime axis 3003. As should be clear to those of ordinary skill in theart, the encoded data blocks (D0, D1, . . . , DN) are received after anarbitrary transmission delay through Network 3990. Lastly, afterdecoding, the segments (Seg0, Seg1, . . . , SegN) of the reconstructedaudio or audio-visual work are plotted along time-axis 3004. Manymethods are well known to those of ordinary skill in the art forencoding and decoding audio or audio-visual works.

Since, as discussed above, the transmission time of data that representsa particular portion of an audio or audio-visual work is generallysmaller than the playback time interval of the particular portion, twoor more audio or audio-visual works can be transmitted across a networkby interleaving or Time-Division Multiplexing (TDM) the datarepresenting the two audio or audio-visual works. Many methods are wellknown to those of ordinary skill in the art for interleaving andTime-Division Multiplexing data representing audio or audio-visual worksduring transmission across a network. In the preferred embodiment of thepresent invention, Time-Division Multiplexing is used to transmit datato Multicaster 3300. In particular, Work Streamer 3200 accesses datafrom Storage Device 3100, and outputs a TDM stream of data toMulticaster 3300.

In accordance with the preferred embodiment of the present invention,the audio or audio-visual work is divided into segments that are encodedas data for efficient storage and transmission. The encoded datarepresenting an interval of the media work will be referred to as a“work-encoded-data-block.” FIG. 8B shows, in graphical form, acomposition and transmission method utilized by Work Stream 3200 to formand transmit a TDM composite signal to Multicaster 3300 of embodiment3000 shown in FIG. 7 of embodiment 3000. As shown in FIG. 8B, time axis3010 shows the playback time of segments (Seg0, Seg1, . . . , Seg5) ofthe audio or audio-visual work being re-broadcast. Seg0 corresponds tothe first segment of the audio or audio-visual work. Thus, time axis3010 corresponds to a re-broadcast of the work that starts at the originof the time axis (hence its designation as offset 0). Below time axis3010 is shown the TDM transmit interval of a work-encoded-data-blockthat corresponds to the segment below which it appears (i.e., the timeit takes to transmit the data). As discussed above, the time to transmitthe corresponding work-encoded-data-block is less than the playback timeof the segment. As further shown in FIG. 8B, time axis 3020 shows theplayback time of segments (Seg5, Seg0, . . . , Seg4) of the audio oraudio-visual work being re-broadcast. Seg0 corresponds to the firstsegment of the audio or audio-visual work. Thus, time axis 3020corresponds to a re-broadcast of the work that starts offset from theorigin of the time axis by one Re-broadcast Interval (“RBI”) (hence itsdesignation as offset 1). Below time axis 3020 is shown the TDM transmitinterval of a work-encoded-data-block which corresponds to the segmentbelow which it appears (i.e., the time it takes to transmit the data).However, it is offset in time by an amount equal to the time it takes totransmit the work-encoded-data-block corresponding to segment SEG0 fromthe offset 0 data stream.

Thus, in accordance with the present invention, the re-broadcasts of theaudio or audio-visual work are labeled: offset 0 stream, offset 1stream, offset 2 stream, and so forth (along time axes 3010-3060) andthe various offset streams represent re-broadcasts of the audio oraudio-visual work at regular time intervals, which are referred to asRe-broadcast Intervals (“RBI”). That is, the starting times for theparticular audio or audio-visual work being re-broadcast are offset atregular intervals, RBI, with the start of the re-broadcast of the audioor audio-visual work being denoted by Seg0 in each of the offset datastreams shown in FIG. 8B).

In accordance with the preferred embodiment of the present invention,Work Streamer 3200 transmits composite signal 3065 (as Shown in FIG. 8B)to Multicaster 3500. As shown in FIG. 8B, composite signal 3065 is a TDMsignal that is made up of TDM frames (this type of Time-DivisionMultiplexing is well known to those of ordinary skill in the art andmany methods are well known to those of ordinary skill in the art forforming such a signal). As further shown in FIG. 8B, each TDM frame ofcomposite signal 3065 comprises a work-encoded-data-block from each ofthe offset streams 0-5, wherein each of the work-encoded-data-blocks isoffset in time for the time it takes to transmit awork-encoded-data-block. As one can readily appreciate, each TDM framethereby comprises a work-encoded-data-block from each of there-broadcasts in the appropriate time slot within the TDM frame. Asshould be well understood by those of ordinary skill in the art, thework-encoded-data-blocks are created by Work Streamer 3200 at theappropriate TDM transmit interval (as indicated on FIG. 8B) by sendingappropriate signals to Storage Device 3100 at regular intervals. Notethat the TDM transmission interval for each of re-broadcast offsetstreams 0-5 occurs at a unique time offset from the start of the TDMFrame. Advantageously, this enables multiple re-broadcasts of the audioor audio-visual work to be sent Multicaster 3300 in a TDM format.Further in accordance with the preferred embodiment of the presentinvention, the use of a TDM composite signal enables interleaved dataaccess to Storage Device 3100 to provide greater performance in manystorage devices of the type that are well known to those of ordinaryskill in the art. It should also be noted that, even though it has beendepicted in this manner for sake of ease of understanding the presentinvention in FIG. 8B, the transmission time required to send awork-encoded-data-block during a particular time slot may not consumethe entire time slot interval.

It should be understood that although the preferred embodiment of thepresent invention utilizes a TDM composite signal, the invention is notthereby restricted and includes embodiments wherein other methodsutilizing multiple streams and/or multiple storage devices, for example,one stream and perhaps one storage device for each re-broadcast, can beemployed to send data from Work Streamer 3200 to Multicaster 3300. Itshould be clear that the TDM composite signal can have a number ofchannels that is bounded by the ability of the system to broadcast toclients without the clients noticing a lapse in transmission (of coursethis cannot account for nondeterministic delays in the network). If alarger number of channels is needed to handle the predeterminedbroadcasts than can be handled by the system without lapses, one could,for example, create multiple TDM composite signals to handle the extraload.

FIG. 9A shows a graph of location of a segment (offset from an origin)of the audio or audio-visual work being re-broadcast by embodiment 3000shown in FIG. 7 as a function of time. As shown in FIG. 9A, duringtransmission of data at normal playback rates, the locations of segmentsof the audio or audio-visual work being broadcast as a function of timeform a line having slope which represents the playback rate (a “normal”playback rate corresponding to a slope of 1) and an intercept on thetime axis at the re-broadcast start time of the particular re-broadcastof the audio or audio-visual work. Data streams 3110-3140 shown in FIG.9A have the same playback rates (and therefore the same slope), but areoffset from one another since they have different re-broadcast starttimes. Note that at any particular time along the horizontal time axismultiple segments from different portions of the audio or audio-visualwork are being re-broadcast simultaneously. This is seen by drawing avertical line that intersects the horizontal time axis at a particulartime.

As further shown in FIG. 9A, at 2 time units from the start of there-broadcast of data stream 3110 (offset 0 data stream), client A0 sendsa request to embodiment 3000 to begin viewing the particular audio oraudio-visual work being re-broadcast. Client A0 must wait for the nextre-broadcast to begin before receiving data (as shown in FIG. 9A, thenext re-broadcast starts at the temporal location denoted by RBI). Thus,client A0 must wait 8 time units before receiving media or other datarequested from data stream 3120 (offset 1 data stream). Similarly, ifclient A1 sends a request to begin viewing the particular audio oraudio-visual work being re-broadcast 7 time units after the start of there-broadcast of data stream 3110 (offset 0 data stream), client A1 hasto wait 3 time units before receiving media or other data requested fromdata stream 3120 (offset 1 data stream).

FIG. 10 shows a block diagram of embodiment 4000 of the presentinvention that transitions asynchronously arriving requests to receive aparticular audio or audio-visual work to synchronous re-broadcasts ofthe audio or audio-visual work. First, for ease of understanding thepresent invention, a general description of how embodiment 4000 operatesis given with reference to FIG. 9A. In accordance with the presentinvention, embodiment 4000 causes the client to be joined to a datastream whose re-broadcast start time is closest (temporally) to thearrival of the client's request. Thus, in accordance with the presentinvention, for client A0, embodiment 4000 determines that the arrivaltime of the request to begin viewing is closest to the re-broadcaststart time of data stream 3110 (note that the re-broadcast time of datastream 3110 has already occurred). Embodiment 4000 then beginsre-broadcasting data to client A0 at 5/3 the normal rate, i.e., at anaccelerated rate. In accordance with the present invention, transmissionat the accelerated rate enables client A0 to “catch up” to the normalre-broadcast location in the audio or audio-visual work 5 time unitsafter the re-broadcast start time of data stream 3110. In response toreceiving data at the accelerated rate, the client (or the client'sserver) automatically initiates playback at an appropriate rate to keepits arrival or capture buffer from overflowing, for example, inaccordance with aspects of the present invention that have beendescribed in detail above. In an alternative embodiment of the presentinvention, instead of having the client determine the accelerated raterequired by its playback system to avoid an overflow of the datareceived, the accelerated rate is transmitted to the client byembodiment 4000 when transmission is starts.

Next, in accordance with the present invention, whenever embodiment 4000determines that the stream of data being re-broadcast to client A0relates to the same playback position as data stream 3110, embodiment4000 sends client A0 data at the normal rate from data stream 3110.Advantageously, in accordance with the present invention, overhead onembodiment 3000, and the corresponding components of embodiment 4000, isreduced since, as will be explained in detail below, the client nowreceives data from Multicaster 4300 and no additional accesses toStorage Device 4100 or Work Streamer 4200 are required to provide datato the client. Additionally, as will be described in detail below, oncethe transition to the offset stream has occurred, the client no longerconsumes resources Variable Rate Broadcaster 4600.

In a similar manner to that described above, in accordance with thepresent invention, for client A1, embodiment 4000 determines that thearrival time of the request to begin viewing is closest to there-broadcast start of data stream 3120 (note that the re-broadcast timeof data stream 3120 has yet to occur). Embodiment 4000 then beginsre-broadcasting data to client A1 at ⅝ the normal rate, i.e., at areduced rate. In accordance with the present invention, transmission atthe reduced rate enables client A1 to reach the normal re-broadcastlocation in the audio or audio-visual work 5 time units after there-broadcast start time of data stream 3120. In response to receivingdata at the reduced rate, the client (or the client's server)automatically initiates playback at an appropriate rate to keep itsarrival or capture buffer from emptying, for example, in accordance withaspects of the present invention that have been described in detailabove. In an alternative embodiment of the present invention, instead ofhaving the client determine the reduced rate required by its playbacksystem to avoid emptying, the reduced rate is transmitted to the clientby embodiment 4000 when transmission is started.

Next, in accordance with the present invention, whenever system 4000determines that the stream of data being re-broadcast to client A1relates to the same playback position as data stream 3120, embodiment4000 sends client A1 data at the normal rate from stream 3120.Advantageously, in accordance with the present invention, overhead onembodiment 3000, and the corresponding components of embodiment 4000, isreduced since, as will be explained in detail below, the client nowreceives data from Multicaster 4300 and no additional accesses toStorage Device 4100 or Work Streamer 4200 are required to provide datato the client. Additionally, as will be described in detail below, oncethe transition to the offset stream has occurred, the client no longerconsumes resources Variable Rate Broadcaster 4600.

We now return to a detailed description of embodiment 4000. As shown inFIG. 10, Storage Device 4100 is a storage device of a type which is wellknown to those of ordinary skill in the art. Storage Device 4100 storesa representation (preferably a digital representation or anyrepresentation that can be converted to a digital representation inaccordance with methods which are well known to those of ordinary skillin the art) of an audio or audio-visual work or data of interest to auser (such as a stream of stock quotes, market data, advertisements, andso forth). Storage Device 4100 receives, as input: (a) data requestsfrom Work Streamer 4200; data requests from Variable Rate Broadcaster4600. Storage Device 4100 provides, as output, the data requested.

As further shown in FIG. 10, Work Streamer 4200 receives as input: (a) acode (for example, a number) which represents a desired Re-broadcastInterval (“RBI”) from Re-broadcast Interval Determiner 4700; (b) a code(for example, a number) which represents a desired number ofTime-Division Multiplexed (TDM) channels; (c) a code (for example, anumber) which represents the duration of the audio or audio visual workbeing re-broadcast; and (d) data transmitted from Storage Device 4100.Work Streamer 4200 produces, as output: (a) a Time-Division Multiplexedcomposite signal as described above (this is applied as input toMulticaster 4300) and (b) a stream of information that provides theplayback position and time offset of each time-offset re-broadcaststream of the work (this is applied as input to Slope/Rate Determiner4400).

As still further shown in FIG. 10, Re-broadcast Interval Determiner(“RBID”) 4700 receives, as input, (a) a code (for example, a number)which represents the duration of an audio or audio/visual work beingre-broadcast and (b) a code (for example, a number) that represents thenumber of re-broadcast offset channels, and produces, as output, datarepresenting the duration of the re-broadcast interval (“RBI”). Inaccordance with the present invention, Re-broadcast Interval Determiner4700 computes the RBI by applying one of a number of formulas. In thepreferred embodiment of the present invention, the following formula isused:

RBI=Duration of audio or audio-visual work/(No. of re-broadcast offsetchannels  (6)

As yet still further shown in FIG. 10, Slope Rate Determiner (“SRD”)4400 receives as input: (a) data representing start times for eachoffset data stream of the audio or audio visual work being re-broadcastfrom Work Streamer 4200; (b) arrival times and client identificationinformation from Request Processor 4500; and (c) a set of parametersrepresenting maximum allowable Time-Scale Modification rates (orslopes). SRD 4400 produces as output: (a) client identificationinformation for the client requesting the data (applied as input toVariable Rate Broadcaster 4600 “VRB 4600” and Multicaster 4300); (b) anidentification of the re-broadcast offset data stream the client will besynchronized or merged with (applied as input to VRB 4600); (c) anindication of the time it will take before the synchronization or mergetakes place (“duration to intercept”) (applied as input to VRB 4600 andMulticaster 4300); and (d) a slope, which represents the playback rate(this slope or playback rate is applied as input to VRB 4600). Inaccordance with the present invention, SRD 4400 determines there-broadcast offset data stream whose start time is temporally closestto the arrival time of the client's request by computing the distanceforward and backward in time to the previous offset stream start timeand the next offset stream start time (with respect to the arrivaltime), and choosing the smaller of the forward and backward times. Next,SRD 4400 computes a client playback slope that is greater than 1.0 if“catching-up” to a future playback intercept position in an offsetstream already started, or a client playback slope that is less than 1.0to “slow-down” to a future playback intercept position in an offsetstream which will start in the future. The actual slope can bedetermined by a number of factors such as the utilization of VRB 4600(if a higher slope is used, there is a greater load since data must besent faster), and the maximum allowable Time-Scale Modification rate. Inmost cases slope values will be between ½ and 2.0, and can becalculated: (a) by computing a desired playback position change per unittime; (b) by accessing a pre-computed look-up table; or (c) any othermethod of choosing a reasonable slope, such as, by client input relatingto the speed of the “catch-up.” The “duration to intercept” iscalculated by subtracting the time that data transmission to the clientis initiated from the time interval at which the playback positions ofVRB 4600 and the target offset stream are identical. The “duration tointercept” information is used to signal VRB 4600 when it must endtransmission to the client and to signal Multicaster 4300 when it mustinitiate transmission of the appropriate offset stream.

As yet again still further shown in FIG. 10, VRB 4600 receives as input:(a) data from Storage Device 4100; (b) a slope or playback rate from SRD4400; (c) client identification information for the client requestingthe data from SRD 4400; (d) an identification of the re-broadcast offsetdata stream the client will be synchronized or merged with; and (e)“duration to intercept” from SRD 4400. VRB 4600 obtains the specifieddata received from Storage Device 4100 and broadcasts it to theidentified client at the specified rate for an amount of time equal tothe “duration to intercept” and then stops sending data for that client.VRB 4600 produces as output a stream of data sent to the identifiedclient via a network such as the Internet or Intranet and so forth.

As yet still further shown in FIG. 10, Multicaster 4300 receives asinput: (a) a data stream (the Time-Division Multiplexed compositesignal) from Work Streamer 4200; (b) client information (control anddestination) from Request processor 4500; (c) client identificationinformation for the client requesting the data from SRD 4400; and (d)“duration to intercept” information from SRD 4400. Multicaster 4300produces, as output, data (for example, message packets) directed towardparticular clients for clients for re-broadcast on a network such as theInternet, WAN, LAN, etc. In accordance with the present invention,Multicaster 4300 manages a list of all clients that should receive datafrom particular portions of the TDM composite signal in accordance withany one of a number of methods which are well known to those of ordinaryskill in the art. Then, whenever the particular portion of data in theTDM composite signal is received from Work Streamer 4200, Multicaster4300 sends the particular portion of data to all clients (recipients) inthe list who are to receive the particular portion of data (also knownas multicasting). Many methods for broadcasting a portion of data from adata stream (for example, a Time-Division Multiplexed composite signal)to multiple recipients are well known to those of ordinary skill in theart. Control information from Request Processor 4500 are used inaccordance with methods that are well known to those of ordinary skillin the art to modify the list of recipients, for example, to add arecipient, or to remove a recipient from the list of destinations whenthe recipient no longer desires to receive data from the server. The“duration to intercept” and client information from SRD 4400 is used tonotify Multicaster 4300 when clients previously receiving data from VRB4600 should begin receiving data from one of the offset streams.

Lastly, Request Processor 4500 receives, as input, requests for datafrom clients connected via a network (for example, an Internet, WAN,LAN, or the like). In response, Request Processor 4500 produces, asoutput, information identifying the client and the appropriatere-broadcast control information such as, for example, “request datathat is identified by an appropriate data identifier,” “disconnect,” andother messages that are used to obtain data from embodiment 4000. Itshould be clear to those of ordinary skill in the art, that suchinformation identifying the client and appropriate re-broadcast controlinformation may be obtained: (a) by dialogs between the client andRequest Processor 4500 in accordance any one of many methods that arewell known to those of ordinary skill in the art including, withoutlimitation, by use of forms that are contained on web pages that aretransmitted to the client over a network in accordance any one of themany methods that are well known to those of ordinary skill in the art.

Although FIG. 10 shows embodiment 4000 to be comprised of separatemodules, in a preferred embodiment, the modules are embodied as softwareprograms or modules which run on a general purpose computer such as, forexample, a personal computer. It should be well known to one of ordinaryskill in the art, in light of the detailed description above, how toimplement these programs or modules in software.

Conversely, components of embodiment 4000 may exist in separatelocations connected to one another by a network or any othercommunication means (where the use of the term means is used in thebroadest sense possible).

To better understand the operation of embodiment 4000 described above,FIG. 9B shows a graph of work-encoded-data-block number (offset from anorigin) of the audio or audio-visual work being re-broadcast byembodiment 4000 as function of time. As shown in FIG. 9B, duringtransmission of data at normal playback rates, thework-encoded-data-blocks of the audio or audio-visual work beingre-broadcast as a function of time, form a line having slope 1 and anintercept on the time axis at the re-broadcast start time of theparticular broadcast of the work. As further shown in FIG. 9B, datastreams 3110 and 3120 are offset from one another, i.e., they are datastreams having different “re-broadcast start-times.” However, datastreams 3110 and 3120 have the same playback rate, i.e., the same slopein FIG. 9B, but different intercepts on the time axis corresponding totheir different start times. As discussed above, streams transmitted ata normal rate have slope 1.

As further shown in FIG. 9B, the work-encoded-data-blocks sent by VRB4600 of embodiment 4000 are identical to the work-encoded-data-blockssent by Multicaster 4300 of embodiment 4000, but are simply broadcastwith a different time interval between the work-encoded-data-blocks.This means that VRB 4600 sends the same work-encoded-data-blocks thatMulticaster 4300 sends, but adjusts the time interval betweentransmissions of the work-encoded-data-blocks in order to “catch-up to”or “wait-for” the stream of data blocks sent by Multicaster 4300. If theclient request is received between (n)RBI and (n+½)RBI (less than thehalf-way point, in time, between the nth and the (n+1)st re-broadcaststart time), the inter-transmission interval is shortened to catch-up toan intersection point in the previous offset stream (note the datatransmitted for path 3111 has the same work-encoded-data-blocks as path3110, but spaced closer together in time). If the client request isreceived between (n+½)RBI and (n+1)RBI (more than the half-way point, intime, between the nth and the (n+1)st re-broadcast start time), theinter-transmission interval is lengthened to wait for an intersectionpoint with the next offset stream (note the data transmitted for path3121 has the same work-encoded-data-blocks as path 3120, but spacedfurther apart in time). Note that, in accordance with the presentinvention, only the initial portion of the audio or audio-visual work isbroadcast by VRB 4600, and thus VRB 4600 can cache thework-encoded-data-blocks from the initial portion of the work to furtherreduce the number of accesses to Storage Device 4100. There are manymethods and apparatus that are well known to those of ordinary skill inthe art for caching data, such as, for example, SRAM, DRAM, or smallcapacity hard disks.

Then, in accordance with the present invention, once embodiment 4000 (orthe transmitting server) determines that the stream of data beingbroadcast to client A1 is accessing the same playback position duringthe same time interval as stream 3120, the server sends the client dataat the normal rate from stream 3120 and the overhead on the media serveris reduced. In the preferred embodiment the duration to intercept isused to identify the time at which the stream from VRB 4600 andMulticaster 4300 will intercept and when the responsibility oftransmitting data to the client should transition from VRB 4600 toMulticaster 4300.

Although aspects of the present invention have been described in thecontext of aligning or synchronizing to one of several, offset,re-broadcast data streams, it should be clear that the present inventionis not limited to time alignment of re-broadcasted works. In fact,embodiments of the present invention may also be used to align orsynchronize with (catch up), for example, live broadcasts by storing ortime shifting an audio or audio-visual work that is broadcast only once.For example, in digital VCRs or televisions that contain digital storagefor spooling live broadcasts, a user may watch a live broadcast andinvoke a “Pause” function (by, for example, pressing a “pause andrecord” button) to stop playback and initiate recording of the one-timebroadcast audio or audio-visual work. In response, the one-timebroadcast audio or audio-visual work is recorded from the point wherethe Pause function was invoked to the end of the audio or audio-visualwork. As should be clear, this enables a user to turn to other tasks.After the user is ready to return to the work, playback is resumed atthe location where the “Pause” was initiated by playing the recordedcopy of the one-time broadcast. This playback is said to be“time-shifted” since the playback time differs from the one-timebroadcast time. In prior art devices, there is no mechanism to catch upto the one-time broadcast without deleting or skipping some portion ofthe time-shifted copy of the audio and/or audio-visual work in thebroadcast. However, embodiments of the present invention, can be used tocatch-up to the live one-time broadcast by computing the playback raterequired to catch-up in a predetermined interval, such as a commercialbreak, program boundary, or the like. In this manner users watching atime-shifted version can “catch-up” to a live broadcast after they havepaused their viewing devices.

FIG. 9C shows a graph of position (offset from an origin) of an audio oraudio-visual work being received by a media playback device thatincorporates storage of the audio or audio-visual work, such as, forexample a digital VCR, hard-disk based VCR, and the like. As shown inFIG. 9C, a one-time live broadcast (4001) is being viewed as it isbroadcast. At time Tp, the user invokes the Pause function. Aspreviously described, the one-time live broadcast is recorded afterinvoking the Pause function. At time Tr, the user resumes viewing at thesame location in the work where the Pause function was invoked. However,the user is behind the live broadcast. Using the inventive method andapparatus previously described with respect to embodiment 4000, the userspecifies the amount of time desired to transition back to the one-timelive broadcast (received by Request Processor 4500), and apparatus,similar to Slope/Rate Determiner 4400, computes a Time-ScaleModification Rate, or Playback Rate, that will transition the user tothe one-time live broadcast during the specified interval. The interceptinterval computed by embodiment 4000 determines the time at which themedia playback device may discontinue recording of the one-time livebroadcast, since after the intercept interval, the user will be viewingthe one-time live broadcast as it is received. As shown in FIG. 9C, timeTv marks the time at which the user will again be viewing the livebroadcast. The time interval from Tr to Tv defines the transition periodduring which the user will be watching a Time-Scale compressed (orspeeded-up) version of the recorded material. The time interval from Tpto Tv defines the interval of the one-time live broadcast which must berecorded in order to provide a seamless transition to the live-broadcastfrom a time-shifted viewing reference.

Note that upon intersecting with the one-time live broadcast, there isno longer a need to continue recording the work, and this process isstopped. The ability of embodiment 4000 to merge with or “catch-up” to aone-time live broadcast of a work from a time-shifted copy of the workthat has been recorded significantly reduces the amount of the workwhich must be stored or recorded. This reduction further reduces therequired storage resources required.

In accordance with a further aspect of the present invention, systemoverhead for serving requests from clients that arrive during intervalsbetween the start of re-broadcasts of a particular audio or audio-visualwork is further reduced. In accordance with this further aspect of thepresent invention, portions of the audio or audio-visual work beingbroadcast are Time-Scale Modified at two rates: one rate is faster thannormal speed and one rate is slower than normal speed. These slow-rateand fast-rate broadcast portions of the audio or audio-visual work arere-broadcast during an interval from the start of re-broadcast of thework to a point X during the broadcasting of the work, which point X isa function of the re-broadcast interval and the amount of Time-ScaleModification performed. These portions will be referred to asTime-Scaled Leaders. FIG. 11A shows a graph of location (offset from anorigin) of an audio or audio-visual work being re-broadcast byembodiment 5000 shown in FIG. 12 as a function of time in accordancewith the further aspect of the present invention. As shown in FIG. 11A,embodiment 5000 (TSM System 5400 of embodiment 5000 shown in FIG. 12)time compresses the first 10 time units of the audio or audio-visualwork and creates a new data stream 3210 which has duration 5 units and aplayback rate of 2. Note that only 10 time units of the beginning of theoriginal audio or audio-visual work are time-scale compressed. Next, asshown in FIG. 11A, embodiment 5000 (TSM System 5400 of embodiment 5000shown in FIG. 12) time-expands the first 5 time units of the work andcreates a new data stream 3220 which has duration 10 units and playbackrate of ½. Note that only 5 time units of the beginning of the originalaudio or audio-visual work are time-scale expanded. As further shown inFIG. 11A, playback of either of these two data segments 3210 and 3220may begin at the midpoint of the interval between re-broadcast starttimes (RBI/2), and, upon reaching the end of each Time-Scale Modifieddata stream, the client will be at the same segment location of theaudio or audio-visual work being re-broadcast on an earlier or lateroffset data stream, respectively. In the preferred embodiment, segments(labeled 3211, 3212) of the single time-scale compressed leader 3210 areused to merge with the previous offset stream from starting timesbetween (n)RBI and (n)(RBI/2) as shown in FIG. 11A. Similarly, segments(labeled 3221, 3222) of the single time-scale expanded leader 3220 areused to merge with the next offset stream from starting times between(n)(RBI/2) and RBI(n+1) as shown in FIG. 11A.

As is readily apparent from FIG. 11A, in accordance with the presentinvention, further, smaller time-scale compressed and time-scaleexpanded portions of the audio or audio-visual work are re-broadcastfrom times between the midpoint of the re-broadcast interval, and mergewith the offset streams. In the preferred embodiment segments of thetime-scale compressed leader and segments of the time-scale expandedleader are broadcast from starting times other than the offset streamstart-times and merge with the offset streams. The interval betweenre-broadcasts of the Time-Scale Modified Leaders is Leader Re-broadcastInterval (LRBI), which LRBI can be selected by embodiment 5000. Inaccordance with a preferred embodiment of the present invention, asshown in FIG. 11A, re-broadcasts of the time-scale compressed leader andtime-scale expanded leader may be accomplished utilizing the techniqueof Time-Division Multiplexing for further efficiency.

Advantageously, in accordance with this aspect of the present invention,there is no need to compute playback rates, and a media server needsonly: (a) to select a Time-Scale Modified Leader to send to the clientand (b) to manage a transition from the Time-Scale Modified Leader to adata stream being transmitted at normal speed when appropriate. Thus, inaccordance with this aspect of the present invention, SRD 4400 and VRB4600 of embodiment 4000 are replaced with a Time-Scaled Leader DurationDeterminer, Time-Scale Modification apparatus, and apparatus forstreaming and multicasting the Time-Scale Modified Leaders. Inaccordance with the preferred embodiment of the present invention, theTime-Scale Modified Leaders are re-broadcast at regular intervalsseparated in time by an amount LRBI.

Although the inventive technique has been described using two time-scalemodified leaders and segments thereof, the invention is not thuslylimited and embodiments using leaders with unique TSM rates (playbackrates) are possible. In addition, multiple TSM leaders with differentstart times and different TSM rates may share a common intercept pointin the work.

FIG. 11B shows, in graphical form, encoding portions of a Time-ScaleModified audio or audio-visual work to form Time-Scale Modified Leaders.Playback time of segments (Seg0, Seg1, . . . , SegN) of an originalaudio or audio visual work are plotted along time axis 4037. Thesesegments are encoded as data in accordance with methods that are wellknown to those of ordinary skill in the are, and the transmission timesfor work-encoded-data-blocks (D0, D1, . . . , DN) which correspond tothe segments (Seg0, Seg1, . . . , SegN) are shown along time axis 4039.Playback time of segments (Seg0, Seg1, . . . , SegN) for a time-scalecompressed leader (compresses by a factor of 2) are shown alongtime-axis 4041. These segments are encoded as data, and the transmissiontimes for work-encoded-data-blocks (D0, D1, . . . , DN) which correspondto the segments (Seg0-Seg1, Seg2-Seg3, . . . ) are shown along time axis4043. Lastly, playback time of segments (Seg0, Seg1, . . . , SegN) for atime-scale expanded leader (expanded by a factor of 2) are shown alongtime-axis 4045. These segments are encoded as data, and the transmissiontimes for work-encoded-data-blocks (D0, D1, . . . , DN) which correspondto the segments (Seg0/2, Seg0/2, Seg1/2, Seg1/2, . . . ) are shown alongtime axis 4047.

FIG. 12 shows a block diagram of embodiment 5000 of the presentinvention which: (a) transmits Time-Scale Modified Leaders; (b) joinsre-broadcast offset streams of an audio or audio-visual work; and (c)transmits offset streams of an audio or audio-visual work. As shown inFIG. 12, Re-broadcast Interval Determiner (RBID) 5700 receives, asinput: (a) a code (for example, a number) which represents the durationof an audio or audio-visual work being re-broadcast and (b) a code (forexample, a number) that represents the number of re-broadcast offsetchannels. RBID 5700 produces, as output, data representing the durationof the re-broadcast interval (“RBI”). The RBI is applied as input toWork Streamer 5200, Leader Re-broadcast Interval Determiner 5710, andTime-Scaled Leader Duration Determiner (“TSLDD”) 5600. In accordancewith the present invention, RBID 5700 computes the RBI by applying oneof a number of formulas. In the preferred embodiment, the followingformula is used:

RBI=Duration of audio or audio-visual work/(No. of re-broadcast offsetchannels  (7)

Work Streamer 5200 and Multicaster 5300 are identical to Work Streamer4200 and Multicaster 4300, respectively, which were described above withrespect to embodiment 4000 shown in FIG. 10.

As further shown in FIG. 12, TSLDD 5600 receives as input: (a) RBI (fromRBID 5700); (b) a user defined parameter representing the time-scalecompression (or speed-up) rate to use; and (c) a user defined parameterrepresenting the time-scale expansion (or slow-down) rate to use. Inresponse, TSLDD 5600 produces, as output, the maximum time interval ofthe input audio or audio-visual work that will be required for creationof time-scale-compressed leaders and time-scale expanded leaders(applied as input to TSM System 5400). TSLDD 5600 computes the timeinterval of the original audio or audio-visual work that will betime-scale compressed to form a time-scale compressed leader and thetime interval of the original audio or audio-visual work that will betime-scale expanded to form a time-scale expanded leader by applying thefollowing formulas:

Speed-Up:

Tdo=(I/2)(Speed/(Speed−1))  (8)

where:

-   -   Tdo=Time Interval of the original audio or audio-visual work to        be time-scale compressed; Speed=speed-up factor        (i.e. >1)=1/time-compression factor; and I=Re-broadcast        interval.

Slow-Down:

Tdo=(I/2)(Speed/(1−Speed))  (9)

where:

-   -   Tdo=Time Interval of the original audio or audio-visual work to        be time-scale expanded; Speed=slow-down factor (i.e.        <1)=1/time-expansion factor; and I=Re-broadcast interval.

As one can readily appreciate from the above, for speed-up by a factorof 2 (i.e., time-compression by ½) and slow-down by a factor of ½ (i.e.,time-expansion by 2), the time-compressed leader is obtained from asegment of the original audio or audio-visual work which starts at thebeginning of the audio or audio-visual work and has a time intervalequal to the re-broadcast interval. The time-expanded leader is obtainedfrom a segment of the original audio or audio-visual work which startsat the beginning of the audio or audio-visual work and has a timeinterval equal to ½ the re-broadcast interval. This can also beunderstood as described above with respect to FIG. 11A.

As shown in FIG. 12, Time-Scale Modification System (TSMS) 5400 receivesas input: (a) data from Storage Device 5100 representing the originalaudio or audio-visual work; (b) the time interval of the original audioor audio-visual work required to generate time-scale compressed leaders(from TSLDD 5600); (c) the time interval of the original audio oraudio-visual work required to generate a time-scale expanded leaders(from TSLDD 5600); (d) the speed factor for time-scale compression (fromTSLDD 5600); and (e) the speed factor for time-scale expansion (fromTSLDD 5600). TSMS 5400 produces as output (a) a time-scale compressedleader; and (b) a time-scale expanded leader. TSMS 5400 time-scalecompresses (at the specified speed factor) the specified duration of theoriginal work to produce the time-scale compressed leader. Similarly,TSMS 5400 time-scale expands (at the specified speed factor) thespecified duration of the original work to produce the time-scaleexpanded leader. In a preferred embodiment of the present invention, thetime-scale-compressed leader and the time-scale expanded leader arestored in Storage Device 5100.

Storage Device 5100 is a storage device of a type which is well known tothose of ordinary skill in the art. Storage Device 5100 stores arepresentation (preferably a digital representation or anyrepresentation that can be converted to a digital representation inaccordance with methods which are well known to those of ordinary skillin the art) of an audio or audio-visual work or data of interest to auser (such as a stream of stock quotes, market data, advertisements, andso forth) and Time-Scale Modified Leaders.

As shown in FIG. 12, Request Processor (RP) 5500 receives, as input,requests for data from clients connected via a network (for example, anInternet, WAN, LAN, or the like). In response, Request Processor 5500produces, as output, information identifying the client and theappropriate re-broadcast control information such as, for example,“request for data that is identified by an appropriate data identifier,”“disconnect,” and other messages that are used to obtain data fromembodiment 5000. It should be clear to those of ordinary skill in theart, that such information identifying the client and appropriatere-broadcast control information may be obtained: (a) by dialogs betweenthe client and Request Processor 4500 in accordance any one of manymethods that are well known to those of ordinary skill in the artincluding, without limitation, by use of forms that are contained on webpages that are transmitted to the client over a network in accordanceany one of the many methods that are well known to those of ordinaryskill in the art. Output from RP 5500 is applied as input to StreamAssignment System (SAS) 5550.

As shown in FIG. 12, SAS 5550 receives, as input: (a) information fromRP 5500; (b) leader-offset-stream information (described in detailbelow) from TSCL Streamer 5210; (c) leader-offset-stream information(described in detail below) from TSEL Streamer 5220; and (d) information(described in detail below) from LRBID 5710. SAS 5550 produces, asoutput, control information which is received by Multicaster 5300, TSCLMulticaster 5310, and TSEL Multicaster 5320. In accordance with thisembodiment of the present invention, SAS 5550 first determines atemporally closest leader-offset-stream by computing distances, forwardand backward, in time from the arrival time of a client's request toview an audio or audio-visual work, to the previous Time-Scale ModifiedLeader-offset-stream start time and the next Time-Scale ModifiedLeader-offset-stream start time, and choosing the smaller of the two asthe temporally closest leader-offset-stream. This can be performed byeither of two methods: (a) by monitoring information output from TSCLStreamer 5210 and TSEL Streamer 5220 or (b) by computing the start timesfor the leaders from information provided by LRBID 5710. In accordancewith this embodiment of the present invention, SAS 5550 then produces,as output, information that directs either TSCL Multicaster 5310 or TSELMulticaster 5320 to add the requesting client to the list ofdestinations for the appropriate Time-Scale Modified Leader offsetstream segments being re-broadcast. SAS 5550 also sends information toMulticaster 5300 and either TSCL Multicaster 5310 or TSEL Multicaster5320 which information conveys client identification and controlinformation and the “intercept-time” for the corresponding Time-ScaleModified Leader offset stream to an offset stream of the original audioor audio-visual work. In response to the intercept information, TSCLMulticaster 5310 and TSEL Multicaster 5320 note the intercept time andschedule the deletion of the requesting client from the list ofmulticast recipients of that TSM Leader offset stream after theintercept time. Additionally, and in response to the interceptinformation, Multicaster 5300 notes the intercept time and schedules theaddition of the requesting client to the list of multicast recipients ofthat offset stream after the intercept time.

As shown in FIG. 12, Time-Scale Expanded Leader Streamer 5220 receives,as input: (a) a code (for example, a number) which represents a desiredLeader Re-broadcast Interval (“LRBI”) from Leader Re-broadcast IntervalDeterminer 5710; (b) a code (for example, a number) which represents adesired number of Time-Division Multiplexed (TDM) channels for theTime-Scale Expanded Leader from Leader Re-broadcast Interval Determiner5710; (c) a code (for example, a number) which represents the durationof the leader being re-broadcast from Leader Re-broadcast IntervalDeterminer 5710 (alternatively, this information could have comedirectly from TSLDD 5600); (d) the start times of the re-broadcastoffset streams of the original audio or audio-visual work from LeaderRe-broadcast Interval Determiner 5710; and (e) data for the audio oraudio-visual work from Storage Device 5100. Time-Scale Expanded LeaderStreamer 5220 produces, as output: (a) the Time-Division Multiplexedcomposite signal of leader segments in a manner similar to thatdescribed above for Work Streamer 4200 (applied as input to TSELMulticaster 5320) and (b) a stream of information giving the playbackposition and time-offset for each time-offset re-broadcast stream of theTime-Scale Expanded Leader (applied as input to SAS 5550).

As shown in FIG. 12, Time-Scale Compressed Leader Streamer 5210receives, as input: (a) a code (for example, a number) which representsa desired Leader Re-broadcast Interval (LRBI) from Leader Re-broadcastInterval Determiner 5710; (b) a code (for example, a number) whichrepresents a desired number of Time-Division Multiplexed (TDM) channelsfor the Time-Scale Compressed Leader from Leader Re-broadcast IntervalDeterminer 5710; (c) a code (for example, a number) which represents theduration of the leader being re-broadcast from Leader Re-broadcastInterval Determiner 5710 (alternatively, this information could havecome directly from TSLDD 5600); (d) the start times of the re-broadcastoffset streams of the original audio or audio-visual work from LeaderRe-broadcast Interval Determiner 5710; and (e) data for the audio oraudio-visual work from Storage Device 5100. Time-Scale Compressed LeaderStreamer 5210 produces, as output: (a) the Time-Division Multiplexedcomposite signal of leader segments in a manner similar to thatdescribed above for Work Streamer 4200 (applied as input to TSCLMulticaster 5310) and (b) a stream of information giving the playbackposition and time-offset for each time-offset re-broadcast stream of theTime-Scale Compressed Leader (applied as input to SAS 5550).

As shown in FIG. 12, Leader Re-broadcast Interval Determiner (LRBID)5710 receives, as input: (a) a code (for example, a number) whichrepresents the duration of the time-scale compressed and time-scaleexpanded leaders from TSLDD 5600; (b) a code (for example, a number)which represents the number of leader re-broadcast offset channelsRe-broadcast Interval Determiner 5700; and (c) a code (for example, anumber) which represents the RBI from RBID 5700. LRBID 5710 produces, asoutput, data which represents the duration of the Leader Re-broadcastInterval (“LRBI”) (applied as input to TSCL Streamer 5210 and TSELStreamer 5220). Leader Re-broadcast Interval Determiner 5710 computesthe LRBI by applying the following formula:

LRBI=RBI of audio or audio-visual work/(No. of leader re-broadcastoffset channels)  (10)

Note that the greater the number of leader re-broadcast offset channels,the shorter the LRBI, and the less time a requesting client must wait tobegin receiving media data from embodiment 5000.

As shown in FIG. 12, TSCL Multicaster 5310 receives, as input: (a) acomposite signal from TSCL Streamer 5210 and (b) client information (forexample, control and destination) from SAS 5550. Likewise, as shown inFIG. 12, TSEL Multicaster 5320 receives, as input: (a) a compositesignal from TSEL Streamer 5220 and (b) client information (for example,control and destination) from SAS 5550. Then, in accordance with thepresent invention, TSCL Multicaster 5310 and TSEL Multicaster 5320produce, as output, data (for example, message packets) directed towardparticular clients for re-broadcast on a network such as the Internet,WAN, LAN, etc. In accordance with the present invention, TSCLMulticaster 5310 and TSEL Multicaster 5320 each manages a list of allclients that should receive data from particular portions of the TDMcomposite signal in accordance with any one of a number of methods whichare well known to those of ordinary skill in the art. Then, whenever theparticular portion of data in the TDM composite signal is received fromTSCL Streamer 5210 and TSEL Streamer 5220, respectively, TSCLMulticaster 5310 and TSEL Multicaster 5320, respectively, sends theparticular portion of data to all clients (recipients) in the list whoare to receive the particular portion of data (also known asmulticasting). Many methods for broadcasting a portion of data from adata stream (for example, a Time-Division Multiplexed composite signal)to multiple recipients are well known to those of ordinary skill in theart. Control information from SAS 5550 is used in accordance withmethods that are well known to those of ordinary skill in the art tomodify the list of recipients, for example, to add a recipient, or toremove a recipient from the list of destinations when the recipient nolonger desires to receive data from the server. Lastly, whenever thedata stream for a leader merges with a re-broadcast offset stream, theclient is removed from the list of recipients.

Embodiment 5000 has been described in detail above using separatecomponents for ease of understanding the present invention, however, itshould be clear to those of ordinary skill in the art that many of thecomponents perform similar functions to their counterparts in embodiment4000. Further, many of these corresponding components may be combinedwithout loss of functionality. Still further, the intercept intervals inembodiment 5000 of the present invention follow a regular and periodicpattern which advantageously simplifies calculations of slope orplayback rate and can be easily implemented using standard techniquessuch as lookup tables, count-down timers, and the like, all of which arewell known to those of ordinary skill in the art.

Conversely, components of embodiment 5000 may exist in separatelocations connected to one another via a network or any othercommunication means (where the use of the term means is used in thebroadest sense possible).

Although FIG. 12 shows embodiment 5000 to be comprised of separatemodules, in a preferred embodiment, the modules are embodied as softwareprograms or modules which run on a general purpose computer such as, forexample, a personal computer. It should be well known to one of ordinaryskill in the art, in light of the detailed description above, how toimplement these programs or modules in software.

Those skilled in the art will recognize that the foregoing descriptionhas been presented for the sake of illustration and description only. Assuch, it is not intended to be exhaustive or to limit the invention tothe precise form disclosed.

Advantageously, embodiments of the present invention may be used todistribute Movies, Documentaries, or other audio and/or audio-visualworks electronically, such as, for example, pay-per-view programs, videorental and the like. For example, although the distribution wasdescribed using networks, it should be understood that the term networkis used in the broadest sense of the word and includes localdistribution over cable, for example, a hotel distribution system,distribution over satellite, distribution over the public airwaves whereterminals are used in accordance with well known methods to authorizeclient access. It should also be clear that Request Processor 5550 caninclude functionality (in accordance with methods that are well known tothose of ordinary skill in the art) to charge money for receiving workssuch as movies, sporting events and so forth.

For example, those of ordinary skill in the art should readilyunderstand that whenever the term “Internet” is used, the presentinvention also includes use with any non-deterministic delay network. Assuch, embodiments of the present invention include and relate to theworld wide web, the Internet, intranets, local area networks (“LANs”),wide area networks (“WANs”), combinations of these transmission media,equivalents of these transmission media, and so forth.

In addition, it should be clear that embodiments of the presentinvention may be included as parts of search engines used to accessstreaming media such as, for example, audio or audio-visual works overthe Internet.

In further addition, it should be understood that although embodimentsof the present invention were described where the audio or audio-visualworks were applied as input to playback systems, the present inventionis not limited to the use of a playback system. It is within the spiritof the present invention that embodiments of the present inventioninclude embodiments where the playback system is replaced by adistribution system, which distribution system is any device that canreceive digital audio or audio-visual works and re-distribute them toone or more other systems that replay or re-distribute audio oraudio-visual works. In such embodiments, the playback system is replacedby any one of a number of distribution applications and systems whichare well known to those of ordinary skill in the art that furtherdistribute the audio or audio-visual work. It should be understood thatthe devices that ultimately receive the re-distributed data can be“dumb” devices that lack the ability to perform Time-Scale modificationor “smart” devices that can perform Time-Scale Modification.

Although the present invention has been described using Time-ScaleModified Leaders to catch-up or slow-down to a re-broadcast offsetstream of a media work played at a normal playback rate (slope=1), thepresent invention is not thusly limited. For example, furtherembodiments of the present invention can be utilized to enable clientsto merge with time-scale compressed versions of a work (slope>1),time-scale expanded versions of a work (slope<1), or to enable clientsto migrate from a time-scale modified version of a work at oneparticular playback speed to a time-scale modified version of the samework with a different playback speed. In accordance with the presentinvention, this is accomplished by providing transitions from one datastream to another at specific intercept points, or by employingtime-scale modified leaders to transition between versions of a workwith different playback speeds.

In accordance with the present invention, these embodiments arefabricated using embodiment 5000 described above, with a modification toSAS 5550. The modification enables SAS 5550 to compute the temporallyclosest stream with the requested time-scale (i.e., playback-rate)requested by the client at any point during playback.

FIG. 13 shows a graph of location (offset from an origin) in normal andTime-Scale Modified versions of offset re-broadcasts of an audio oraudio-visual work versus time on the horizontal axis. As shown in FIG.13, nine (9) offset data streams are being re-broadcast. Three, (13010,13110, 13210), correspond to re-broadcast of the work with normalplayback rate (slope=1.0); three, (13020, 13120, 13220), correspond tore-broadcast of the work with time-scale compression by a factor of 2(slope=2.0); and three, (13005, 13105, 13205), correspond tore-broadcast of the work with time-scale expansion by a factor of 2(slope=½). As further shown in FIG. 13, at each re-broadcast interval,three (3) stream broadcasts are initiated (compressed, normal, expanded)and that these offset data streams intercept one another at regularintervals where the lines cross (lines intersect when the playbacklocations and playback times are equal). Clients wishing to view orlisten to a work at a different rate can make a seamless transition tothe new rate at points of intersection because the playback locations atthe intersections are identical in each of the streams. As still furthershown in FIG. 13, transition leader 13001 (normal playback rate,slope=1) is shown to demonstrate a transition from playback stream 13005(one-half normal playback rate, slope=½) to playback stream 13020 (twicenormal playback rate, slope=2.0). Additionally, a time-scale modifiedtransition leader 13002 (twice normal playback rate, slope=2.0) is usedto transition from playback stream 13105 (one-half normal playback rate,slope=½) to playback stream 13110 (normal playback rate, slope=1) at atime before the normal intersection with playback stream 13220.Embodiment 5000 can be used to generate the re-broadcasts and thetime-scale modified leaders to enable the client to traverse there-broadcast matrix shown in FIG. 13. In that case, client requests willbe received by Request Processor 5500 and transmitted in the mannerdescribed above with respect to the description of embodiment 5000.

For purposes of clarity and ease of understanding the present invention,the foregoing detailed description has used constant time-scalemodification factors, but the present invention is not thusly limitedand includes the use of varying time-scale modification factors usingthe same method and apparatus described above. Thus, Time-ScaleModification may be varied with time without loss of generality. In thiscase, the duration and slope of such a continually varying Time-ScaleModified signal can be computed using any one of a number of formulae,including the following formula:

Duration=previous duration+(time-interval*tsm_factor)  (11)

Although for clarity and ease of understanding the previous inventionshave been described broadcasting a single work, it should be clear thatembodiments of the present invention are not thusly limited and theinventive technique can be applied to multiple works existing in asingle embodiment.

Another aspect of the present invention relates to the use ofPresentation Rate Guidance Information (“PRGI”) that is broadcast inconjunction with an audio or audio-visual work from a broadcast serverto restrict, or direct, playback rates at a client device receiving theaudio or audio-visual work. Embodiments of this aspect of the presentinvention can be used in a variety of ways. For example, a publicservice announcement regarding emergency information, safetyinformation, and the like may be missed if the user is listening at avery fast rate (learning impaired and hearing impaired individuals maywish to have important public service or emergency broadcasts played atplayback rates below the normal playback rate to aid in comprehension).Since these messages may be of vital importance, a need exists torestrict or direct the playback rate for the client apparatus in aclient-server system and/or broadcaster-recipient system that supportsTime-Scale Modification, and/or to notify the client apparatus orrecipient device of the importance of these messages.

In addition to a need for controlling playback rate relating, forexample, to public safety, embodiments of this aspect of the presentinvention can be utilized to provide different delivery times forspecific types of content, such as commercial advertisements, stationidentification, violence, nudity, adult language, program scheduleinformation, and program information pertaining to audience suitabilityor content. Embodiments of the present invention can be utilized bybroadcasters to regulate playback of broadcast media works so that, forexample: (a) predetermined portions of the media work must be viewed ata predetermined rate, or skipped altogether, or (b) predeterminedportions of the media work may be viewed at alternative playback ratesthat are selected by: (i) the user interactively, (ii) by a deviceprogrammed by the user (for example, such a device can form a part of aTSM Control Decoder which is described in detail below), or (iii) adevice programmed by the broadcaster which may exist in the clientapparatus (for example, such a device can form a part of the TSM ControlDecoder which is described in detail below) or elsewhere. For example,such embodiments of the present invention enable broadcasters toregulate which commercial advertisements must be viewed at normalplayback rates and which commercials may be viewed at alternative(generally faster) playback rates. Additionally, as a further example,embodiments of the present invention enable broadcasters to require thatplayback rates be increased for violent portions of a media work if arecipient device receiving the work is configured for “general audienceviewing” rather than for “adult audience viewing.” In accordance withthe present invention, such embodiments can be used to restrict or limitthe duration of predetermined adult scenes or language, the durations ofwhich provide a metric that is often used in rating movies as beingsuitable for particular audiences.

PRGI is information that is used to communicate a playback rate for anentire media work or one or more specific portions of the media work. Inparticular, a media work may comprise an audio or audio-visual work. Infurther particular, the entire work, or portions of the work, may beidentified by location information contained in the PRGI. Additionallythe playback rate may be derived from information contained in the PRGI,which information can be interpreted to provide a playback rate and toidentify a portion of the work by: (i) the user interactively, (ii) by adevice programmed by the user, or (iii) a device programmed by thebroadcaster which may exist in the client apparatus or elsewhere.

PRGI can be comprised of one or more of the following types ofinformation (without limitation): (a) “presentation rate information,”(b) “work targeting information,” (c) “presentation rate insistenceinformation,” (d) “media work content information,” (e) “presentationrate rule information,” and (f) “time-stamp information.”

In the simplest form, PRGI comprises “presentation rate information.”The “presentation rate information” may comprise a single value, forexample, a number, representing a playback rate which should take effectimmediately upon receipt. Additionally, the “presentation rateinformation” may comprise a single value, for example a number,representing an increment, decrement, or scale factor that is applied tothe current playback rate and which should take effect immediately uponreceipt.

In further addition, PRGI may comprise “presentation rate information”and “work targeting information.” In accordance with the presentinvention, the “work targeting information” may comprise informationwhich identifies an entire work, or portions of the work. For example,the “work targeting information” may comprise a title of a work and timevalues (for example, referenced from the origin of the specified work),which time values identify one or more portions of the work.Additionally, the “work targeting information” may comprise numericvalues which refer to sample counts, timing-marks, segues (i.e., scenechanges), or other identifiers which identify segments or portions ofthe work. In further addition, the “work targeting information” maycomprise absolute or wall-clock time values.

In further addition, PRGI may comprise: (a) “presentation rateinformation” and “presentation rate insistence information”; or (b)“presentation rate information” and “work targeting information” and“presentation rate insistence information.” In accordance with thepresent invention, the “presentation rate insistence information” maycomprise information which specifies the importance of utilizing the“presentation rate information” contained in the PRGI. For example, the“presentation rate insistence information” may be comprised of codesthat indicate distinct levels such as, for example, “mandatory,”“strongly-encouraged,” “suggested,” and “optional.” Alternatively, the“presentation rate insistence information” may be comprised of a numberon a standard scale known to all recipient devices that make use of thisaspect of the present invention. In still another alternative, the“presentation rate insistence information” may be comprised of a singlevalue, for example a number, representing an increment, decrement, orscale factor that is applied to the current insistence level and whichshould take effect immediately upon receipt. In accordance with thisaspect of the present invention, a TSM Rate Determiner (which forms aportion of a device that receives the media broadcast and which will bedescribed in detail below), interprets the “presentation rateinformation” transmitted from the media broadcaster in light of the“presentation rate insistence information” that is transmittedtherewith. Further embodiments of the present invention do not requirethe use of “presentation rate insistence information.” However, ifinsistence information is utilized, recipient devices may derivedifferent playback rates from identical “presentation rate information”when that “presentation rate information” is paired with different“presentation rate insistence information.”

In still further addition the PRGI may comprise: (a) “media work contentinformation” or (b) “media work content information” and “work targetinginformation” from which playback rate information can be derived. The“media work content information” may take the form of codes which areprocessed using look-up tables, rules, algorithms or the like by: (a)the user interactively, (b) by a device programmed by the user, or (c) adevice programmed by the broadcaster which may exist in the clientapparatus or elsewhere; to obtain a playback rate for a portion of thespecified work. The playback rates obtained may reflect the user'sinterest in portions of the work by, for example, using the techniquesdescribed in U.S. patent application entitled “Method and Apparatus forGeneration of Listener Interest Filtered works, Ser. No. 09/169,031filed Oct. 9, 1998, which patent application has the same inventor asthe present application and is incorporated by reference herein.

In still further addition, the PRGI may comprise “presentation rate ruleinformation” and any one or more of the following: “presentation rateinformation”; “work targeting information”; “presentation rateinsistence information”; “media work content information”; and“time-stamp information”. In accordance with the present invention, the“presentation rate rule information” comprises information which is usedto process PRGI received in the future to obtain playback rates forportions of the media work being received by the recipient device. Insome embodiments of this aspect of the present invention, this“presentation rate rule information” is stored in the form of look-uptables, processor memory, or data structures on the recipient device.The look-up tables, rules and/or algorithms that process predeterminedcodes and/or content information that are transmitted at the time ofbroadcast of the media work, can be broadcast at or before the time ofbroadcast of the media work. Thus, the “presentation rate ruleinformation” can be “pre-loaded” and later used in conjunction with therecipient device's configuration information, user input, and futurePRGI to obtain PRGI in another form. For example, “presentation raterule information” can be sent at a specific hour each day, or betweenprograms, to configure the client device. Once in place on the recipientdevice, the rule information may be used to process PRGI such as, forexample, “media work content information,” “presentation rateinformation,” “work targeting information,” or “presentation rateinsistence information” that are received in the future to obtaindifferent PRGI in the form of any combination of “presentation rateinformation,” “work targeting information,” or “presentation rateinsistence information” for use by the recipient device. It should beunderstood that the term “presentation rate rule information”encompasses control commands necessary to change recipient deviceconfiguration data and to effectuate changes to the recipient devicethat are required to load and process new rules.

The “time-stamp information” can be used to insure that PRGIinformation, for example, “presentation rate insistence information,” isutilized in a logical manner in light of the time of presentation. Thus,in accordance with the present invention: (a) client devices; (b)devices programmed by the user; or (c) a device programmed by thebroadcaster which may exist in the client apparatus (or elsewhere); mayignore or alter certain aspects of the PRGI in light of the “time-stampinformation” and the time of presentation. For example, client devicesreceiving PRGI information may choose to ignore “playback rateinsistence information” if the “time-stamp information” indicates thatthe PRGI was received, for example, four (4) days ago. By ignoring the“playback rate insistence information” for time sensitive material inthe media work, for example, advertisements for a sale which takes placeon a certain date, users would be allowed to fast-forward throughmaterial in the media work which is no longer relevant at the time ofviewing. Thus broadcasters or content creators may choose the durationof time for which the PRGI information sent to client devices will haveeffect. For example, the “time-stamp information” may consist of anexpiration date for the effectiveness of the “playback rate insistenceinformation.” This allows material of a time sensitive nature to bepresented with a restricted presentation rate during presentations ofthe media work which occur before the expiration date contained in the“time-stamp information.” If the presentation of a media work occursafter the expiration date contained in the “time-stamp information,” theoutdated “playback rate insistence information” may be ignored,overridden, or altered to allow users to skip or fast-forward throughthat portion of the media work.

Note that many forms of the PRGI described above may be stored in amanner similar to that used for storing media works. Thus broadcasts ofmedia works and accompanying PRGI may be stored and retrieved for laterviewing of the works while still utilizing the information in the storedPRGI which accompanied the work during receipt of the broadcast.

Additionally, the PRGI may be comprised of multiple instances ofdifferent components or combinations of components described above. Forexample, the PRGI may consist of multiple playback rates that areappropriate for different audiences, for example, three playback ratesmay be broadcast; one for children, one for teenagers, and one foradults. Recipient devices may select the playback rate from the PRGIbroadcast which corresponds to the configuration of the recipientdevice.

In accordance with the present invention, the PRGI information isreceived, processed, and, possibly, altered by one or more modules ofthe recipient device using look-up tables, rules, algorithms or thelike, which one or more modules include: (a) user interaction, (ii) adevice programmed by the user, or (iii) a device programmed by thebroadcaster which may exist in the recipient apparatus or elsewhere.Each module in the recipient device may alter or transform the PRGI fromone representation to another representation for use by other modules inthe client device. For example, PRGI comprising “presentation rateinformation,” “work targeting information,” “presentation rateinsistence information,” and “time-stamp information” may be processedby a module that is programmed by the broadcaster and which resides inthe client device to provide PRGI comprising “presentation rateinformation,” “work targeting information,” and “presentation rateinsistence information” in which one or more of these values has beenmodified. The PRGI output from the module programmed by the broadcaster(“broadcaster-programmed-apparatus”) may then be applied as input to amodule that is programmed by the user (“user-programmed-apparatus”) andwhich resides in the recipient device. The user-programmed-apparatus maythen alter one or more components of the PRGI it receives as input andproduce, as output, a modified PRGI comprising “presentation rateinformation,” and “work targeting information” that is applied as inputto a Time-Scale Modification System.

In accordance with this aspect of the present invention, PRGI used torestrict, or direct, playback rates at the client device is sent ineither of two modes. The PRGI may be sent “in-band” (for example,occurring within the signal being transmitted, for example, as aspecific frequency tone in the media work or as data codes within aheader of a data packet) or it may be sent “out-of-band” (for example,occurring within a data packet associated with, but not comprising,media data).

FIG. 14 shows a block diagram of embodiment 21000 of the presentinvention which transmits PRGI in an “out-of-band” mode to clientdevices receiving the media data.

As shown in FIG. 14, Streaming Data Source 21100 receives, as input,information containing a representation of a media work to be broadcast.Streaming Data Source 21100 provides, as output: (a) data representingthe media work through Network 21200 (Network 21200 is a network in thebroadest sense described above); (b) information indicating apredetermined portion, or predetermined content, of the media work ormedia works being transmitted (applied as input to TSM Control Source21150); and (c) client device identifier information for client devicesthat will have playback rates restricted, including, without limitation,a setting to indicate all broadcast client devices (applied as input toTSM Control Source 21150). There are many methods which are well knownto those of ordinary skill in the art for fabricating Streaming DataSource 21100, for example, one or more of the embodiments describedabove. Note that all or some components of embodiment 21000 may exist inseparate locations, which components are connected to one another via anetwork or any other communication means (where the use of the termmeans is used in the broadest sense possible). Streaming Data Source21100 itself may be a component of a broadcast system, or it may be acomponent of any of a number of devices which provide as output a mediawork, for example a television transmitter, radio transmitter, signalrepeater, or the like. Those of ordinary skill in the art shouldappreciate that, although this aspect of the present invention is beingdescribed in terms of transmission of streaming data over a network, thepresent invention is not thusly limited. In fact, in its broadest sense,this aspect of the present invention relates to all forms oftransmission of information that are broadcast or sent over all forms ofcommunication. As such, for sake of understanding the scope, embodimentsof this aspect of the present invention include transmission of mediaover a cable network in a motel, transmission over a satellite network,broadcast over the Internet, broadcast over television networks,television broadcasts over airways, streaming media, pre-recordedstorage media such as CD-ROM, Video Cassette Tape, and so forth.

As further shown in FIG. 14, TSM Control Source 21150 receives, asinput: (a) information indicating a predetermined portion, orpredetermined content, of the media work or media works beingtransmitted (from Streaming Data Source 21100); (b) client deviceidentifier information for client devices that will have playback ratesrestricted, including, without limitation, a setting to indicate allbroadcast client devices (from Streaming Data Source 21100); and (c)PRGI from broadcast system operators, content-providers, directors,editors, or others. In accordance with this embodiment of the presentinvention, TSM Control Source 21150 combines the information indicatinga predetermined portion, or predetermined content, of the media work ormedia works being transmitted with the input PRGI to form an output PRGIand transmits the output PRGI over Network 21200 to all identifiedclient devices (for example, predetermined groups of client devices)that will have playback rates directed for at least portions of mediawork data received from Streaming Data Source 21100. In some embodimentsof the present invention, the information indicating a predeterminedportion, or predetermined content, of the media work or media worksbeing transmitted may already be contained within the PRGI input to TSMControl Source 21150. In the preferred embodiment of this aspect of thepresent invention, the output PRGI is sent by multicasting as has beendescribed in detail above. As discussed in detail above, in furtherembodiments of the present invention, there is no need to provide to TSMControl Source 21150 information that indicates predetermined portionsof the media work since, in such embodiments, a playback rate receivedas input may apply to the entire work. Additionally, if the PRGI isbased on content information of the media work, then the recipientdevice infers the “work targeting information” from the correspondingcontent information using techniques described in U.S. patentapplication entitled “Method and Apparatus for Generation of ListenerInterest Filtered works, Ser. No. 09/169,031 filed Oct. 9, 1998, whichpatent application has the same inventor as the present application andis incorporated by reference herein.

Although FIG. 14 shows the media data and the PRGI being transmittedover the same network, i.e., Network 21200, the present invention is notthusly limited. In fact, the present invention includes embodimentswhere the media data and PRGI are transmitted over differentcommunications paths. Further, the transmission of the PRGI need not becoordinated with transmission of the media data as described in detailabove. In further embodiments of the present invention, the PRGI istransmitted prior to transmission of the media data and includes “worktargeting information” that enables the client device to coordinate theuse of the PRGI with the media data. For example, in accordance withsuch further embodiments, the “work targeting information” includes,without limitation, times and/or time intervals in the media work thatare targeted for use in restricting playback rates. In addition, such“work targeting information” may further include media workidentification information that enables the recipient device to useand/or re-use the “work targeting information” and the PRGI with theidentified media data any number of times. As should be clear to thoseof ordinary skill in the art, such “work targeting information” andmedia data identification information may be input to TSM Control Source21150 as a part of the PRGI or one or more of them may be input to TSMControl Source 21150 in accordance with any number of methods that arewell known to those of ordinary skill in the art by system operators, orby transmission from a computer, and so forth. Further, all of theinformation may be combined to form the PRGI output from TSM ControlSource 21150 in accordance with any one of the many methods that arewell known to those of ordinary skill in the art.

As shown in FIG. 14, User System 21300 accesses Network 21200 andreceives information containing media data and the PRGI from StreamingData Source 21100 and TSM Control Source 21150, respectively, viaNetwork 21200. In the preferred embodiment, User System 21300 includes adistribution apparatus (not shown) which is well known to those ofordinary skill in the art that receives and routes data and informationfrom Network 21200 using networking protocols and data packetidentification information that are well known to those of ordinaryskill in the art. For ease of understanding the present invention, thisdistribution apparatus is not shown in FIG. 14. For embodiments of thepresent invention that are implemented on general purpose computers,such as personal computers, and the like, this distribution apparatusmanages the flow of information from a network, for example, theInternet, to various programs requesting data.

As further shown in FIG. 14, Capture Buffer 21400 receives thefollowing, as input: (a) media data input from Network 21200; (b)optional requests for information about the amount of data storedtherein (for example, from a Capture Buffer Monitor of the type which isdescribed above in detail; this is not shown again here for the sake ofclarity and for the sake of ease of understanding this aspect of thepresent invention); and (c) requests for media stream data from TSMSystem 21800. In response, Capture Buffer 21400 produces the following,as output: (a) a stream of data representing portions of the media work(applied as input to TSM System 21800); (b) a stream of locationinformation used to identify the position in the stream of data (appliedas input to TSM System 21800 and possibly TSM Rate Determiner 21700);and (c) an optional indication of the amount of data stored therein(applied as input to the optional Capture Buffer Monitor; not shownagain here for the sake of clarity and for the sake of ease ofunderstanding this aspect of the present invention). It should be wellknown to those of ordinary skill in the art that Capture Buffer 21400may include a digital storage device. There are many methods well knownto those of ordinary skill in the art for utilizing digital storagedevices such as, for example, a “hard disk drive,” to store and retrievegeneral purpose data and there exist many commercially availableapparatus which are well known to those of ordinary skill in the art foruse as a digital storage device such as, for example, a CD-ROM, adigital tape, a magnetic disk, and so forth.

As still further shown in FIG. 14, TSM Control Decoder 21450 receives,as input, the PRGI from Network 21200 (as discussed above, TSM ControlDecoder 21450 can also receive all or a portion of the PRGI from adifferent communication channel as well). TSM Control Decoder 21450processes the input PRGI information to obtain PRGI information in aform which can be utilized by TSM Rate Determiner 22700. Thus, TSMControl Decoder 21450 may augment PRGI data received by the applicationof rules, algorithms, and look-up tables to obtain PRGI data for output.Additionally, TSM Control Decoder 21450 may reduce or eliminatecomponents of the PRGI data received to obtain PRGI data in a formatwhich can be utilized by TSM Rate Determiner 21700. In accordance withone embodiment of the present invention, the broadcaster sends to TSMControl Decoder 21450 PRGI that comprises “presentation rate ruleinformation,” which rules state: “rate information output during thefirst two or three occurrences of a commercial advertisement occurringin a series of media works received by the client device are‘unmodifiable’.” This will prevent users from speeding throughcommercials they have not seen repeatedly. Additionally, oralternatively, the rules may dictate that playback rate informationtransmitted from the broadcaster for commercials that have aired lessthan a predetermined number of times or within a predetermined timeinterval, for example, two (2) days, be specified as “unmodifiable.”

FIG. 16 shows an example of PRGI data 30000 received by TSM ControlDecoder 21450 of FIG. 14 and how PRGI data 30000 is used to determineplayback rates of at least portions of the media work. As further shownin conjunction with FIG. 16, information contained in the PRGI data30000 may be processed in numerous ways to obtain an appropriateplayback rate for the presentation of the media work received. Inaccordance with an embodiment of this aspect of the present invention,PRGI data 30000 comprises a single, 16-bit data word of information thatcontains values that are stored in binary format in various bit-fields,which values are used to index look-up tables or rules in the followingmanner. As shown in FIG. 16, a 16-bit word of PRGI data 30000 iscomprised of several bit-fields: (a) a 1-bit playback rate formatselector field 30010; (b) a 4-bit playback rate field 30020; (c) a 1-bitinsistence format selector field 30030; (d) a 3-bit insistence valuefield 30040; and (e) a 4-bit content value field 30050.

As further shown in FIG. 16, Playback Rate Look-Up Table 30100 comprisesabsolute playback rate values and incremental playback rate values, andis used to map values from the bit-fields of PRGI data 30000 to anabsolute playback rate value and an incremental playback rate value.This type of look-up table is commonly stored in digital memory devicesof a type that is well known to those of ordinary skill in the art.Further, the look-up table can be loaded by sending values to specificaddresses of the memory device using any one of the many methods whichare well known to those of ordinary skill in the art. A number stored inthe playback rate value bit-field 30020 of PRGI data 30000 is used toindex Playback Rate Look-Up Table 30100 and obtain two values which areapplied as input to Playback Rate Format Selector 30150. Playback RateFormat Selector 30150 uses Playback Rate Format Selector field 30010 ofPRGI data 30000 to select one of the two input values. The playback ratevalue thus obtained specifies an absolute playback rate value or anincremental playback rate value depending on the value contained in thePlayback Rate Format Selector field 30010. Further, the playback ratevalues obtained for a given input code can be changed dynamically byaltering the entries of Playback Rate Look-Up Table 30100 duringoperation, for example, by sending system control information in thePRGI to a specific address on User System 21300 to effectuate writing toa memory location on User System 21300.

FIG. 17 shows Content Look-Up Table 30200 to illustrate how embodiment21000 uses content information to determine playback rates of at leastportions of the media work. As shown in FIG. 17, Content Look-Up Table30200 contains content information and is used to map values from thecontent value field 30050 of PRGI data 30000 (FIG. 16) to a contentvalue. This type of look-up table is commonly stored in digital memorydevices of a type that is well known to those of ordinary skill in theart. Further, the look-up table can be loaded by sending values tospecific addresses of the memory device using any one of the manymethods which are well known to those of ordinary skill in the art. Anumber stored in content value field 30050 of PRGI data 30000 is used toindex Content Look-Up Table 30200 and obtain a content value that mayinclude, for example, information about content, transitions, languageor priority of the media work being received. Furthermore, the contentvalues obtained for a given input code can be changed dynamically byaltering the entries of Content Look-Up Table 30200 during operation,for example, by sending system control information to a specific addresson User System 21300 to effectuate writing to a memory location on UserSystem 21300. Thus, the number of content values capable of being outputexceeds the number of entries in Content Look-Up Table 30200 when“in-progress” updates to the table are performed.

As shown in FIG. 17, Insistence Look-Up Table 30300 comprises insistencevalues, and it is used to map values from insistence format selectorfield 30030 of PRGI data 30000 (FIG. 16) to an absolute insistencevalue, or an incremental insistence value. This type of look-up table iscommonly stored in digital memory devices of a type that is well-knownto those of ordinary skill in the art. Further, it can be loaded bysending values to specific addresses of the memory device using any oneof the many method which are well known to those of ordinary skill inthe art. In some embodiments, the number stored in insistence formatselector field 30030 of PRGI data 30000 is pre-pended to the numberstored in insistence value field 30040 of PRGI data 30000 to form a newnumber which is used in conjunction with recipient device stateinformation to index Insistence Look-Up Table 30300 and obtain either anabsolute insistence value or an incremental insistence value. Further,the insistence values obtained for a given input code can be changeddynamically by altering the entries of the look-up table duringoperation, for example, by sending system control information to aspecific address on User System 21300 to effectuate writing to a memorylocation on User System 21300.

For clarity and ease of understanding only three states have been shownin FIG. 17. However, method and apparatus fabricated in accordance withthe present invention are not thusly limited, and one should appreciatethat any number of states could be used to achieve different levels ofgranularity of service provided.

In one embodiment of the present invention, state values are obtainedfrom User System 21300 and represent a level of service the user haspurchased, or the feature set or model of User System 21300 purchased bythe user. The state values are used to control the capabilities of UserSystem 21300 during processing of the PRGI sent with a media broadcastedwork. For example, and as shown in FIG. 17, “presentation rateinsistence information” (for example, bit-field values of PRGI data30000) may be represented in the following manner: the number 3represents “mandatory,” the number 2 represents “strongly-encouraged,”the number 1 represents “suggested,” and the number 0 representing“optional.” Using this representation, User System 213000 allowsplayback rate values with accompanying insistence values less than 3 tobe overridden by user input using apparatus acting on behalf of theuser's preferences, and the like. Playback rate values which have anaccompanying insistence value of 3 would not be alterable either by userinput, or apparatus in User System 21300 since these values are deemedmandatory. For playback rate values with accompanying insistence valuesless than 3, the ability to change the speed value by user input,apparatus acting on behalf of the user's preferences and the like may beregulated by the state value obtained from User System 21300. Users maypay to change the state of their User Systems and thus obtain theability to alter or override the suggested guidance information providedby TSM Control Source 21150.

Although embodiments of the present invention have been described usingsimple states which are determined by the payment of a fee or a featureset of a particular configuration of User System 21300, the presentinvention is not thusly limited. In fact, one should readily appreciatethat the present invention includes embodiments wherein complexalgorithms or rules are employed to control the state of User System21300. For example, User System 21300 may employ a time-base service inwhich the user of the recipient device must pay for the ability tooverride the guidance information provided by TSM Control Source for afixed amount of time. Upon the expiration of a predetermined interval oftime, in accordance with such an embodiment, the state of User System21300 transitions to a different state (for example, at a lower level oflower service) and would disallow the feature's use until repayment.

Additionally, in accordance with further embodiments of the presentinvention, User System 21300 contains a counter or other apparatus (notshown for ease of understanding) that is well known to those of ordinaryskill in the art which computes the number of times User System 21300has overridden the guidance information received from TSM Control Source21150. The per-use information provided is then used to implement anynumber of payment options, such as, for example and without limitation,per commercial, per-show, or per-minute fees for altering or overridingthe PRGI received from TSM Control Source 21150. The per-use informationmay be combined with the content information received to allow users toalter the playback rate of certain types of content, for example,commercials or educational material, only after the material has beenviewed a specific number of times on User System 21300.

It should be understood that although an exhaustive list of billingprotocols and algorithms has not been provided for clarity and ease ofunderstanding the present invention, the present invention encompassesall forms of algorithms which restrict and allow alteration of the PRGIbroadcast in association with the media work. For example, broadcastersmay provide User Systems of predetermined segments of broadcastrecipients (which segments are based, for example, on geographic,economic, age, language, or other distinguishing characteristics), data(“speed credits”) that may be used to selectively allow for overridingof PRGI for certain portions of the media works being broadcast. Thus,users residing in a rural geographical location may receive speedcredits for use in speeding up the playback rate during all commercialswith content values pertaining, for example, to “subway tokens in adistant city.” Furthermore, users fluent in one language may be givenspeed credits to slow down commercials or programs which make use ofanother language. The speed credits may contain identifying values whichwould be compared to content values broadcast with PRGI to determineand/or modify the value of the output PRGI's “presentation rateinsistence information.” In further addition, speed credits may becomprised of information identifying particular types of media works,for example, commercials for automobiles and have a limited number ofuses. These limited speed credits would then allow users to fast-forwardthrough a fixed number of automobile commercials, or in anotherembodiment a fixed number of automobile commercials broadcast duringparticular broadcast times, for example, prime-time, late-night, and thelike. The effect of broadcasting more automobile commercials than userswould be allowed to view at increased playback rates would be to forceusers to contemplate their interest in each commercial before “spending”the speed credit. In this aspect of the present invention, users willnaturally choose to watch commercials of interest at normal rates whileaccelerating the playback rate for commercials which do not interestthem. The overall benefit of such a system to advertisers is that userwould be exposed to more media content including advertisements per unittime than would be possible without the time-scale modification andusers would hear the content of advertisements played at acceleratedrates. Additionally, the benefit to users would be that they are allowedto accelerate the playback rate of uninteresting commercials.

In further addition, the broadcaster of the media work and PRGI mayprovide the ability to alter the PRGI during certain viewing times andto restrict the ability at other times, for example during “prime-time”viewing hours. The capability to restrict or allow playback rates otherthan the suggested playback rate broadcast with the media work isprovided via use of different insistence levels that may specify“mandatory” or non-mandatory insistence levels depending on thebroadcast time. The non-mandatory insistence levels may be subdividedfurther based on the states in the User Systems so that customers payingfor premium service may be allowed to alter the broadcast playback ratewhile those paying for less service would be restricted.

Although the inventive technique and apparatus have been described usingfour (4) insistence levels, the present invention is not thusly limitedand any number of insistence levels could be used.

As yet still further shown in FIG. 14, TSM Rate Determiner 21700receives the following, as input: (a) a signal (from TSM Control Decoder21450) that represents PRGI, for example a playback rate and worklocation and optionally, presentation rate insistence information; (b)user generated playback rate requests received from User InteractionInterface 21550; (c) a parameter designated Interval_Size; (d) aparameter designated Speed_Change_Resolution; and (e) work locationinformation from either Capture Buffer 21400 or TSM System 21800. Inresponse, TSM Rate Determiner 21700 produces, as output, a playback ratesignal representing a TSM rate, or playback rate, which playback ratesignal is applied as input to TSM System 21800. TSM Rate Determiner21700 may pass user generated playback rate requests to its output(without modification), thereby enabling the user to control theplayback rate. However, in accordance with the present invention,whenever TSM Rate Determiner 21700 receives PRGI, for example in theform of “presentation rate information” and “work targetinginformation”, from TSM Control Decoder 21450, TSM Rate Determiner 21700processes that information in light of the work location informationreceived from TSM System 21800 to determine an appropriate playback rateto output to TSM System 21800. For example TSM Rate Determiner 21700 mayreceive a time-offset from the origin of work as a component of the PRGIreceived as input from TSM Control Decoder 21450 and compare thetime-offset with a time-offset from TSM System 21800 to determine theappropriate time to update the output TSM Rate. Additionally, TSM RateDeterminer 21700 may utilize algorithms to process the input PRGI andobtain and output playback rate. For example, TSM Rate Determiner 21700may override the user requested rate request if the information from TSMControl Decoder 21450 contains “presentation rate insistenceinformation”, for example, a predetermined code (signifying, forexample, without limitation, that the media work being received is ofcritical importance to public safety). Additionally, TSM Rate Determiner21700 may process the PRGI from TSM Control Decoder 21450 according torule-sets or other algorithms specified by: (a) the user interactively,(b) a device programmed by the user, or (iii) a device programmed by thebroadcaster which may exist in the client apparatus or elsewhere. Forexample, in accordance with rule-sets or algorithms input by the userusing the user interaction interface apparatus in accordance with anyone of many methods which are well known to those of ordinary skill inthe art, User System 21300 can fast-forward through all commercialcontent in the media work being received and/or slow down for specifictypes of content, using techniques described in U.S. patent applicationentitled “Method and Apparatus for Generation of Listener InterestFiltered works, Ser. No. 09/169,031 filed Oct. 9, 1998, which patentapplication has the same inventor as the present application and isincorporated by reference herein.

In a preferred embodiment of the present invention, TSM Rate Determiner21700 uses a parameter Interval_Size to segment the input digital datastream in Capture Buffer 21400 and to determine a single TSM rate foreach segment of the input digital stream. Note the length of eachsegment is given by the value of the Interval_Size parameter. Further,TSM Rate Determiner 21700 uses a parameter Speed_Change_Resolution todetermine appropriate TSM rates to pass to TSM System 21800. A desiredTSM rate is converted to one of the quantized levels in a manner that iswell known to those of ordinary skill in the art. This means that theTSM rate, or playback rate, can change only if the desired TSM ratechanges by an amount that exceeds the difference between quantizedlevels, i.e., Speed_Change_Resolution. As a practical matter then,parameter Speed_Change_Resolution filters small changes in TSM rate, orplayback rate. The parameters Interval_Size and Speed_Change_Resolutioncan be set as predetermined parameters for embodiment 21000 inaccordance with methods which are well known to those of ordinary skillin the art or they can be entered and/or varied by receiving user inputthrough the user interaction interface apparatus in accordance withmethods which are well known to those of ordinary skill in the art.However, the manner in which these parameters are set and/or varied arenot shown for ease of understanding the present invention.

Embodiments of TSM System 21800 and Playback System 21500 have beendescribed in detail above.

As shown in FIG. 14, User Interaction Interface 21550 receives as input:User Generated Rate Requests from a user. User Interaction Interface21550 produces as output: PRGI, for example, in the form of data codeswhich specify the absolute playback rate or incremental changes to thecurrent playback rate, or any of the components of PRGI discussed above.User Interaction Interface 21550 uses apparatus which is fabricated inaccordance with any one of many methods which are well known to those ofordinary skill in the art for collecting input from a user via akeyboard and screen, mouse, pointing device, or joystick.

Although FIG. 14 shows embodiment 21000 to be comprised of separatemodules, in a preferred embodiment, the modules are embodied as softwareprograms or modules which run on a general purpose computer such as, forexample, a personal computer. It should be well known to one of ordinaryskill in the art, in light of the detailed description above, how toimplement these programs or modules in software.

Conversely, components of embodiment 21000 may exist in separatelocations connected to one another via a network or any othercommunication means (where the use of the term means is used in thebroadest sense possible).

Advantageously, in accordance with the present invention, theabove-described PRGI can be used to control the playback rate duringpredetermined portions of the media work, for example, commercials orpublic safety announcements. Thus, a user may be prevented from fastforwarding through the commercials or public safety announcements.However, in an alternative embodiment, users may pay for the ability toautomatically fast-forward through all commercial advertisements in anaudio or audio-visual work being received. In such an alternativeembodiment, a user interaction interface apparatus (fabricated inaccordance with any one of the many methods which are well known tothose ordinary skill in the art) receives user requests and chargeinformation to effectuate the functionality of overriding broadcastPRGI, for example playback rate information, received by TSM RateDeterminer 21700. Such payment information is sent as predeterminedcodes which are recognized by TSM Rate Determiner 21700 in a manner thatis well known to those of ordinary skill in the art and enable userdetermined playback rates to be used for playback.

In addition, it should be understood that although embodiment 21000 wasdescribed in the context of streaming media over a network, the termnetwork is used in the broadest sense as described above and that thisaspect of the present invention is not limited to broadcast of streamingmedia and includes broadcast of media in general.

FIG. 15 shows a block diagram of embodiment 22000 of the presentinvention in which PRGI being broadcast is transmitted in an “in-band”mode (i.e. embedded in the media work) to client devices.

As shown in FIG. 15, Streaming Data Source 22100 receives, as input,information containing a representation of a media work to be broadcast.Streaming Data Source 22100 provides, as output: (a) data representingthe media work to Compositer 22160; (b) information indicating apredetermined portion, or predetermined content, of the media work ormedia works being transmitted (applied as input to TSM Control Source22150); and (c) client device identifier information for client devicesthat will have playback rates restricted, including, without limitation,a setting to indicate all broadcast client devices (applied as input toTSM Control Source 22150). There are many methods which are well knownto those of ordinary skill in the art for fabricating Streaming DataSource 22100, for example, one or more of the embodiments describedabove. Note that all or some components of embodiment 22000 may exist inseparate locations, which components are connected to one another via anetwork or any other communication means (where the use of the termmeans is used in the broadest sense possible).

As further shown in FIG. 15, TSM Control Source 22150 receives, asinput: (a) information indicating a predetermined portion, orpredetermined content, of the media work or media works beingtransmitted (from Streaming Data Source 22100); (b) client deviceidentifier information for client devices that will have playback ratesrestricted, including, without limitation, a setting to indicate allbroadcast client devices (from Streaming Data Source 21100); and (c)PRGI from broadcast system operators, content-providers, directors,editors, or others. In accordance with this embodiment of the presentinvention, TSM Control Source 22150 produces, as output: (a) clientdevice identifier information for client devices that will have playbackrates restricted (applied as input to Compositer 22160) and (b) PRGI(applied as input to Compositer 22160). In accordance with thisembodiment of the present invention, TSM Control Source 22150 combinesthe information indicating a predetermined portion, or predeterminedcontent, of the media work or media works being transmitted with theinput PRGI to form an output PRGI and transmits the output PRGI toCompositer 22160. In some embodiments of the present invention, theinformation indicating a predetermined portion, or predeterminedcontent, of the media work or media works being transmitted may alreadybe contained within the PRGI input to TSM Control Source 22150. Asdiscussed in detail above, in further embodiments of the presentinvention, there is no need to provide information that indicatespredetermined portions of the media work since, in such embodiments, aplayback rate may apply to the entire work or to content specificportions thereof.

As still further shown in FIG. 15, Compositer 22160 receives, as input:(a) data representing the media work (from Streaming Data Source 22100);(b) client device identifier information for client devices that willhave playback rates restricted (from TSM Control Source 22150); and (c)PRGI (from TSM Control Source 22150). Compositer 22160 provides, asoutput, a data signal which contains both the media work and PRGI(applied as input to Encoder 22170). In accordance with this embodimentof the present invention, Compositer 22160 embeds the PRGI bytransforming it into any one of a number of signal representations thatare well known to those of ordinary skill in the art to be compatiblefor use with well known apparatus that encodes and decodes the mediawork. In one embodiment, for example, short tones of a predeterminedfrequencies may be used. In another embodiment, for example, code datamay be embedded in portions of the media work that are not presented tousers, for example, during vertical blanking intervals such as thoseemployed today by most television sets to provide closed-captioninginformation. In another embodiment, Compositer 22160 utilizes the clientdevice identifier information input to determine whether or not to embedPRGI in the media work or in data packets or data transport layers whichcontain the media work. Additionally, Compositer 22160 may embed PRGIinformation in the media work or in data packets or data transportlayers which contain the media work and selectively alter the value of a“valid” or “ignore” flag contained in the PRGI according to the clientdevice identifier information. Thus, client devices specified wouldreceive embedded PRGI with a valid flag, while others would receive PRGIwith an ignore flag. It should be clear to those of ordinary skill inthe art that Compositer 22160 may itself be a component of a broadcastsystem, or it may be a component of any of a number of devices whichprovide as output a media work, for example a television transmitter,radio transmitter, signal repeater, or the like.

As yet still further shown in FIG. 15, Encoder 22170 receives, as input,a data signal from Compositer 22160 and provides, as output, arepresentation of the input data signal which is transmitted via Network22200 (Network 22200 is a network in the broadest sense described above)to client devices, for example, client devices that have requested theaudio or audio visual work. Encoder 22170 uses any number of methodswell known to those of ordinary skill in the art for transforming theincoming signal into a representation which requires less storage, andtransmission bandwidth, and which can be used to reconstructsignificantly the same signal.

In embodiments of the present invention that transmit data “in-band” bythe addition of information into the data packet or transport layer usedto carry the media information, the PRGI is not contained in the mediawork and thus can be added after the encoding of the media work byEncoder 22170. Thus it should be clear to those of ordinary skill in theart that the chain of components comprised of Compositer 22160, Encoder22170, Network 22200, Decoder 22310 and Separator 22320 may be changedto Encoder 22170, Compositer 22160, Network 22200, Separator 22320, andDecoder 22310 due to the fact that the PRGI no longer needs to be mergedwith the media work and encoded before transmission over Network 22200.Instead the data representing the encoded media work is added to thePRGI and the two are packaged together before transmission.

As shown in FIG. 15, User System 22300 is connected to Network 22200 andreceives information containing media data and PRGI from Compositer22160 via Network 22200. In the preferred embodiment, User System 22300includes a distribution apparatus (not shown) which is well known tothose of ordinary skill in the art that receives and routes data andinformation from Network 22200 using networking protocols and datapacket identification information that are well known to those ofordinary skill in the art. For the sake of clarity and ease ofunderstanding the present invention, this apparatus is not shown in FIG.15. For embodiments of the present invention that are implemented ongeneral purpose computers, such as personal computers, and the like,this distribution apparatus manages the flow of information from anetwork, for example, the Internet, to various programs requesting data.

As further shown in FIG. 15, Decoder 22310 receives, as input, data fromNetwork 22200. Decoder 22310 provides, as output, a data signal which isapplied as input to Separator 22320. Decoder 22310 decodes the encodeddata signal using any one of a number of methods which are well known tothose of ordinary skill in the art to obtain an identical orsubstantially similar signal to the signal that was presented as inputto Encoder 22170.

As still further shown in FIG. 15, Separator 22320 receives, as input,the data signal from Decoder 22310, and Separator 22320 provides, asoutput: (a) a data signal representing the media work (applied as inputto TSM System); and (b) a data signal representing the PRGI (applied asinput to TSM Control Decoder 22450). Separator 22320 uses any one ofmany methods that are well known to those of ordinary skill in the artfor detecting, decoding, and removing an embedded signal from the mediawork. For example, a matched filter may be used to detect predeterminedfrequency tones present in the work. After detection, these tones may beremoved, for example, by subtracting the predetermined tones from theoriginal composite signal to create a signal without the predeterminedtones. In addition, it should be clear to those of ordinary skill in theart that information not presented to the user may be left in thecomposite signal since it will not interfere with, or be detectedduring, presentation. For example, close captioning information is notvisible during presentation unless specifically requested by the user.

In accordance with this embodiment of the present invention, TSM ControlDecoder 22450, TSM Rate Determiner 22700, TSM System 22800, UserInteraction Interface 22550, and Playback System 22500 are the same asthe corresponding components described above with respect to embodiment21000.

Although FIG. 15 shows embodiment 22000 to be comprised of separatemodules, in a preferred embodiment, the modules are embodied as softwareprograms or modules which run on a general purpose computer such as, forexample, a personal computer. It should be well known to one of ordinaryskill in the art, in light of the detailed description above, how toimplement these programs or modules in software.

Conversely, components of embodiment 22000 may exist in separatelocations connected to one another via a network or any othercommunication means (where the use of the term means is used in thebroadest sense possible).

It should be clear that all of the capabilities discussed above withrespect to embodiment 21000 (shown in FIG. 14) also apply to embodiment22000 (shown in FIG. 15) and, as such, the discussion of suchcapabilities is incorporated herein by reference.

Although the detailed description used the terms playback rate and TSMrate, and the terms playback and playback apparatus, these terms shouldbe understood to include any type of presentation rate (i.e., a rate ofpresentation of information) and any type of presentation apparatus. Assuch, these terms are to be understood as being used in the broadestsense. In addition, although the detailed description used the termsmedia, media work, media data, media broadcast, audio or audio-visualwork, and information, these terms should be understood to refer to anytype of information or data. As such, these terms are to be understoodas being used in the broadest sense.

What is claimed is:
 1. A method of presenting a media work comprised ofone or more media works at a client device, which method comprises:receiving presentation rate guidance information from a remote source;determining whether the presentation rate guidance information indicatesthat it is mandatory to present a portion of the media work, and if so;presenting the portion.
 2. The method of claim 1 further comprising theclient device storing the presentation rate guidance information.
 3. Themethod of claim 1 further comprising the client device receiving atleast a portion of the media work from a remote source.
 4. The method ofclaim 3 further comprising the client device storing the presentationrate guidance information.
 5. The method of claim 4 further comprisingthe client device storing the media work.
 6. The method of claim 3further comprising the client device storing the media work.
 7. A methodof presenting a media work comprised of one or more media works at aclient device, which method comprises: receiving presentation rateguidance information from a remote source; receiving user inputrequesting the client device to fast forward through a portion of themedia work; determining whether the presentation rate guidanceinformation indicates that it is mandatory to present the portion of themedia work, and if so; presenting the portion without fast forwarding.8. The method of claim 7 further comprising the client device storingthe presentation rate guidance information.
 9. The method of claim 7further comprising the client device receiving at least a portion of themedia work from a remote source.
 10. The method of claim 9 furthercomprising the client device storing the presentation rate guidanceinformation.
 11. The method of claim 10 further comprising the clientdevice storing the media work.
 12. The method of claim 9 furthercomprising the client device storing the media work.
 13. A method ofpresenting a media work comprised of one or more media works at a clientdevice, which method comprises: receiving presentation rate guidanceinformation from a remote source; receiving user input requesting theclient device to skip a portion of the media work; determining whetherthe presentation rate guidance information indicates that it ismandatory to present the portion of the media work, and if so;presenting the portion.
 14. The method of claim 13 further comprisingthe client device storing the presentation rate guidance information.15. The method of claim 13 further comprising the client devicereceiving at least a portion of the media work from a remote source. 16.The method of claim 15 further comprising the client device storing thepresentation rate guidance information.
 17. The method of claim 16further comprising the client device storing the media work.
 18. Themethod of claim 15 further comprising the client device storing themedia work.
 19. A method of presenting a media work comprised of one ormore media works at a client device, which method comprises: receivingpresentation rate guidance information from a remote source; receivinguser input requesting the client device to fast forward through aportion of the media work; determining whether the presentation rateguidance information indicates that it is mandatory to present theportion of the media work, and if so; determining a presentation ratefor the portion; and presenting the portion at the determinedpresentation rate.
 20. The method of claim 19 further comprising theclient device storing the presentation rate guidance information. 21.The method of claim 19 further comprising the client device receiving atleast a portion of the media work from a remote source.
 22. The methodof claim 21 further comprising the client device storing thepresentation rate guidance information.
 23. The method of claim 22further comprising the client device storing the media work.
 24. Themethod of claim 21 further comprising the client device storing themedia work.
 25. A method of presenting a media work comprised of one ormore media works at a client device, which method comprises: receivingpresentation rate guidance information from a remote source; receivinguser input pertaining to presentation rate of a portion of the mediawork; determining whether the presentation rate guidance informationindicates that it is mandatory to present the portion of the media work,and if so; presenting the portion without modifying the presentationrate in response to the user input.
 26. The method of claim 25 furthercomprising the client device storing the presentation rate guidanceinformation.
 27. The method of claim 25 further comprising the clientdevice receiving at least a portion of the media work from a remotesource.
 28. The method of claim 27 further comprising the client devicestoring the presentation rate guidance information.
 29. The method ofclaim 28 further comprising the client device storing the media work.30. The method of claim 27 further comprising the client device storingthe media work.
 31. A method of controlling presentation of a media workcomprised of one or more media works by a client device which is capableof presenting a media work in response to user input, which methodcomprises: providing presentation rate guidance information; andtransmitting the presentation rate guidance information from a remotesource to the client device, wherein: at least a portion of thepresentation rate guidance information indicates that it is mandatory topresent at least a portion of the media work.
 32. The method of claim 31wherein the at least a portion of the presentation rate guidanceinformation indicates that it is mandatory to present the at least aportion of the media work at a predetermined presentation rate.
 33. Aclient device that presents a media work comprised of one or more mediaworks comprises: a decoder adapted to receive presentation rate guidanceinformation transmitted from a remote source, which decoder is furtheradapted to process the presentation rate guidance information and tooutput insistence information relating to one or more portions of themedia work to a presentation apparatus; and a user interaction interfaceapparatus adapted to receive user input regarding presentation of themedia work and to transmit at least a portion of the user input to thepresentation apparatus; wherein the presentation apparatus is adapted topresent the one or more portions if the insistence information indicatesthat it is mandatory to present the one or more portions even if theuser input includes a request to skip the one or more portions.
 34. Amethod of presenting a media work comprised of one or more media worksat a client device, which method comprises: receiving presentation rateguidance information from a remote source; receiving user inputregarding presentation of the media work; processing the presentationrate guidance information to determine insistence information relatingto one or more portions of the media work; and presenting the one ormore portions if the insistence information indicates that it ismandatory to present the one or more portions even if the user inputincludes a request to skip the one or more portions.
 35. A client devicethat presents a media work comprised of one or more media workscomprises: a decoder adapted to receive presentation rate guidanceinformation transmitted from a remote source, which decoder is furtheradapted to process the presentation rate guidance information and tooutput insistence information and presentation rates relating to one ormore portions of the media work to a presentation apparatus; a userinteraction interface apparatus adapted to receive user input regardingpresentation of the media work and to transmit at least a portion of theuser input to the presentation apparatus; wherein the presentationapparatus is adapted to present the one or more portions at thepresentation rates if the insistence information indicates that it ismandatory to present the one or more portions at the presentation rateseven if the user input includes a request to modify the presentationrates of the one or more portions.
 36. A method of presenting a mediawork comprised of one or more media works at a client device, whichmethod comprises: receiving presentation rate guidance information froma remote source; receiving user input regarding presentation rate of aportion of the media work; processing the presentation rate guidanceinformation to determine insistence information and presentation ratesrelating to one or more portions of the media work; and presenting theone or more portions at the presentation rates if the insistenceinformation indicates that it is mandatory to present the one or moreportions at the presentation rates even if the user input includes arequest to modify the presentation rates of the one or more portions.37. A client device that presents a media work comprised of one or moremedia works comprises: a decoder means for (a) obtaining presentationrate guidance information transmitted from a remote source, (b)processing the presentation rate guidance information to determineinsistence information relating to one or more portions of the mediawork, and (c) providing the insistence information to a presentationapparatus; a user interaction interface apparatus adapted to receiveuser input regarding presentation of the media work and to transmit atleast a portion of the user input to the presentation apparatus; whereinthe presentation apparatus is adapted to present the one or moreportions if the insistence information indicates that it is mandatory topresent the one or more portions even if the user input includes arequest to skip the one or more portions.
 38. A client device thatpresents a media work comprised of one or more media works comprises: adecoder means for (a) obtaining presentation rate guidance informationtransmitted from a remote source, (b) processing the presentation rateguidance information to determine insistence information relating to oneor more portions of the media work, and (c) providing the insistenceinformation to a presentation apparatus; a user interaction interfaceapparatus adapted to receive user input regarding presentation of themedia work and to transmit at least a portion of the user input to thepresentation apparatus; wherein the presentation apparatus is adapted topresent the one or more portions at the presentation rates if theinsistence information indicates that it is mandatory to present the oneor more portions at the presentation rates even if the user inputincludes a request to modify the presentation rates of the one or moreportions.